Skip to Content
Author's profile photo Gerd Forstmann

Fiori “App could not be loaded” 404 error on network trace for javascript

Symptoms

Note: This blog deals with a specific issue on not running UI5 App Index calculate or having a wrong manifest. For issues caused by cachebusting , see other blogs of these author.

 

App could not be loaded message dialogue appears:

/wp-content/uploads/2016/06/error_985744.jpg

 

The Component or Component-preloads.js request succeeds.

But a subsequent resource request fails

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/lib/reuses1/util/util.js 404

 

In the console we find:

16-06-29 10:19:07.171379 The application i2d.le.delivery.create.s1 has errors and will possibly not run properly. –  i2d.le.delivery.create.s1O @ core-min-0.js:92error @ core-min-0.js:92(anonymous function) @ core-min-1.js:97createComponent @ core-min-1.js:97(anonymous function) @ core-min-0.js:192p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-0.js:192p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75p @ core-min-0.js:75add @ core-min-0.js:75(anonymous function) @ core-min-0.js:204p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-0.js:204p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ ClientSideTargetResolutionAdapter.js:2Promise.resolve (async)sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter.getInbounds @ ClientSideTargetResolutionAdapter.js:2_ensureInbounds @ core-min-0.js:204resolveHashFragment @ core-min-0.js:204_resolveHashFragmentClientSideAndFixApplicationType @ core-min-1.js:77_resolveHashFragmentClientSide @ core-min-1.js:77r @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_invokeResolveHashChain @ core-min-1.js:77(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75add @ core-min-0.js:75resolveHashFragment @ core-min-1.js:77_resolveHashFragment @ core-min-0.js:192doHashChange @ core-min-0.js:192p @ core-min-0.js:64sap.ushell.services.ShellNavigationHashChanger.treatHashChanged @ core-min-1.js:89execute @ core-min-0.js:154dispatch @ core-min-0.js:154dispatch @ core-min-0.js:154(anonymous function) @ core-min-0.js:146i @ core-min-0.js:146

undefined:1 Uncaught (in promise) undefined

undefined:1 Uncaught (in promise) undefined

abap.js:2 GET https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/lib/reuses1/util/util.js 404 (NOT FOUND)X.send @ abap.js:2send @ core-min-0.js:75ajax @ core-min-0.js:75r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92i2d/le/delivery/create/s1/util/util.js @ Component-preload.js:5callPreloadWrapperFn @ core-min-0.js:92s1 @ core-min-0.js:92r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92i2d/le/delivery/create/s1/Component.js @ Component-preload.js:5callPreloadWrapperFn @ core-min-0.js:92s1 @ core-min-0.js:92r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92w @ core-min-2.js:73(anonymous function) @ core-min-2.js:73Promise.resolve (async)(anonymous function) @ core-min-0.js:92

core-min-0.js:92 2016-06-29 10:19:07.933870 Failed to load UI5 component with properties ‘{“name”:”i2d.le.delivery.create.s1″,”self”:{“name”:”i2d.le.delivery.create.s1″},”messages”:[{“severity”:”error”,”text”:”The application i2d.le.delivery.create.s1 has errors and will possibly not run properly.”}],”componentData”:{“startupParameters”:{}},”asyncHints”:{“libs”:[“sap.ca.scfld.md”,”sap.ca.ui”,”sap.me”,”sap.ui.unified”],”waitFor”:[]},”url”:”/sap/bc/ui5_ui5/sap/le_shp_creates1/~E6CEDC01B875A9C85B506203D6BCDB95~C”,”async”:true,”id”:”application-OutboundDelivery-create-component”}’. – Error: found in negative cache: ‘i2d/le/delivery/create/s1/Component.js’ from undefined/i2d/le/delivery/create/s1/Component.js: Error: found in negative cache: ‘i2d/le/delivery/create/s1/util/util.js’ from undefined/i2d/le/delivery/create/s1/util/util.js: Error: failed to load ‘sap/i2d/le/lib/reuses1/util/util.js’ from /sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/lib/reuses1/util/util.js: 404 – NOT FOUND

    at r1 (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/core-min-0.js:92:25795)

    at Object.q.sap.require (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/core-min-0.js:92:30193)

    at w (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/core-min-2.js:73:13039)

    at https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/core-min-2.js:73:16539

 

 

There is  a 404 on a different resource.

 

 

/wp-content/uploads/2016/06/negativecache_985781.jpg

 

This resource /sap/i2d/le/lib/reuses1/util  is tried to be located under /ushell/resources.

 

If a non-ui5/ushell resource is located here, it’s a clear indication that an application library path was not correctly configured/returned.

 

A proper path would have been:

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/utils/utils.js

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CED~5/library-preload.…

 

The intent started is OutboundDevliery-create.

 

Inspecting the start_up request, which is one of the first request

/sap/bc/ui2/start_up?so=*&action=*&sap-language=EN&sap-client=100&shellType=FLP&depth=
indicates that this application is flawed:

 

/wp-content/uploads/2016/06/start_up_json_985745.jpg

“has errors and will possibly not run”.

 

We also get some indication on the catalog, the application (url /sap/bc/ui5_ui5/sap/le_shp_creates1) etc.

 

 

To eliminate the errors, we have to rebuild the application index for the application and the ui5 resources:

 

Running:

recalcualteAppIndex.jpg

 

scheduleJOb.jpg

 

and on “le_ui_reuses1”

makes the response slightly better:

/wp-content/uploads/2016/06/some_progress_985759.jpg

 

 

 

Running it also on UI5 resources

/wp-content/uploads/2016/06/ui5appindex_985807.jpg

 

gives a complete result:

 

 

 

/wp-content/uploads/2016/06/ui5alsocorrect_985750.jpg

 

And subsequently the app can be started:

WorkingApp.jpg

 

Schedule /UI5/APP_INDEX_CALCULATE

 

The whole issue could have been avoided by following the Fiori Setup, performing the SPRO step:

 

sproScheduleJob.jpg

 

See also:

SAPUI5 Application Index – User Interface Add-On for SAP NetWeaver – SAP Library

 

 

Appendix:

 

In above analysis we skipped a number of “magic” steps, these are explained here:

 

Identifying the intent causing the problem:

setLogLevelDebug.jpg

 

intentLog.jpg

2016-06-29 14:37:27.024050 Outer shell hash changed from ‘Shell-home’ to ‘OutboundDelivery-create’ –  sap.ushell.services.ShellNavigation

2016-06-29 14:37:27.040580 NavTargetResolution: custom resolver DefaultAdapter resolves #OutboundDelivery-create – 

 

 

Determining the Application

/wp-content/uploads/2016/06/startup3_985805.jpg

 

 

/wp-content/uploads/2016/06/start_up_json_985745.jpg

 

 

Identifying the BSP/Library belonging to a given path

 

 

 

This resource /sap/i2d/le/lib/reuses1/util  is tried to be located under /ushell/resources.

If a non-ui5/ushell resource is located here, it’s a clear indication that an application library path was not correctly configured/returned.

A proper path would have been:

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CED~5/utils/utils.js

Actually finally the file will be contained in a preload bundle :

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CED~5/library-preload.…

 

 

There

 

correctFile.jpg

 

Identifying the Associated Application and /or Reuse library

 

 

In the  startup response, we only see the javascript name of the library:

i2d.le.delivery.create.s1

Which is also used as the “canonic” path of the library resource.

/i2d/le/delivery/create/s1/util/util.js:

 

 

 

It is non-trivial to “deduce” the correct path from this,

 

 

 

Technically, the file could be anywhere in the ui5 respository.

 

A proper path would have been:

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CED~5/utils/utils.js

from which we could derive the BSP name ( le_ui_reuses1 ).

 

There is no direct way to determine the library path or BSP path name from the  ui5 package name.

there are some database out there

 

In this case we have an application which uses it, which gives some hints where to start looking:

 

The name of the application referencing it is  (url: /sap/bc/ui5_ui5/sap/le_shp_create1),

/wp-content/uploads/2016/06/start_up_json_985745.jpg

 

So looking for something in the vincinity (le*) may yield the correct answer:

 

 

one can either look in the BSP respository:

correctFileSE80.jpg

 

Or the ICF handler:

 

 

Reuse library:

 

findserviceSICF.jpg

 

find_via_SICF.jpg

 

SE80Reuse_library2016-06-29_12-27-57.jpg

Looging into a file at the package name will validate our assumptions ( typically packages are not

split among libraries).

correctFileSE80.jpg

 

Other relates blogs:

Resolving Fiori Launchpad Cachebusting inconsistencies (ABAP FES)

Identifying a Fiori App

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Dianne Wheeler
      Dianne Wheeler

      Thanks for the knowledge transfer.  I found this after a couple of hours of slowly working through.  Makes sense when I thought about it but I hadn't connected the dots myself quite.  Best wishes, Di