@@ -44,6 +44,7 @@ export class AddonModForumDiscussionsSource extends CoreRoutedItemsManagerSource
4444 groupInfo ?: CoreGroupInfo ;
4545 allPartsPermissions ?: AddonModForumCanAddDiscussion ;
4646 canAddDiscussionToGroup = true ;
47+ errorLoadingDiscussions = false ;
4748
4849 constructor ( courseId : number , cmId : number , discussionsPathPrefix : string ) {
4950 super ( ) ;
@@ -222,13 +223,27 @@ export class AddonModForumDiscussionsSource extends CoreRoutedItemsManagerSource
222223 throw new Error ( 'Can\'t load discussions without a forum or selected sort order' ) ;
223224 }
224225
225- const response = await AddonModForum . getDiscussions ( this . forum . id , {
226- cmId : this . forum . cmid ,
227- sortOrder : this . selectedSortOrder . value ,
228- page,
229- groupId : this . groupId ,
230- } ) ;
231- let discussions = response . discussions ;
226+ let discussions : AddonModForumDiscussion [ ] = [ ] ;
227+ let canLoadMore = false ;
228+ try {
229+ const response = await AddonModForum . getDiscussions ( this . forum . id , {
230+ cmId : this . forum . cmid ,
231+ sortOrder : this . selectedSortOrder . value ,
232+ page,
233+ groupId : this . groupId ,
234+ } ) ;
235+
236+ discussions = response . discussions ;
237+ canLoadMore = response . canLoadMore ;
238+ this . errorLoadingDiscussions = false ;
239+ } catch ( error ) {
240+ if ( page > 0 || CoreUtils . isWebServiceError ( error ) ) {
241+ throw error ;
242+ }
243+
244+ // Error loading first discussions, use an empty list.
245+ this . errorLoadingDiscussions = true ;
246+ }
232247
233248 if ( this . usesGroups ) {
234249 discussions = await AddonModForum . formatDiscussionsGroups ( this . forum . cmid , discussions ) ;
@@ -254,7 +269,7 @@ export class AddonModForumDiscussionsSource extends CoreRoutedItemsManagerSource
254269 }
255270 }
256271
257- return { discussions, canLoadMore : response . canLoadMore } ;
272+ return { discussions, canLoadMore } ;
258273 }
259274
260275 /**
0 commit comments