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:
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/l... 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/l... 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/co...)
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/co...)
at https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/co...
There is a 404 on a different resource.
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/~1B85DCA7BF6102DA44021F886A4E9CE...
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:
"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:
and on "le_ui_reuses1"
makes the response slightly better:
Running it also on UI5 resources
gives a complete result:
And subsequently the app can be started:
Schedule /UI5/APP_INDEX_CALCULATE
The whole issue could have been avoided by following the Fiori Setup, performing the SPRO step:
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:
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
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/~1B85DCA7BF6102DA44021F886A4E9CE...
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/~1B85DCA7BF6102DA44021F886A4E9CE...
There
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/~1B85DCA7BF6102DA44021F886A4E9CE...
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.
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),
So looking for something in the vincinity (le*) may yield the correct answer:
one can either look in the BSP respository:
Or the ICF handler:
Reuse library:
Looging into a file at the package name will validate our assumptions ( typically packages are not
split among libraries).