Missing dynamic modules on Api Server Angular HTML5

Hello,

Problem:

We have a strange bug on the Api Server in the new Angular portal. We get randomly missing dynamic modules when the user restarts IIS.

Workaround:

Currently we need to delete the cache inside the App_Data folder if this bug is present.

Product:

One Identity Manager 9.2.1. 

When we build the new Api portal we do use the npm run build:watch:dynamic <NAME> of the dynamic modules. We even tried to contact the support and they provided the hotfix 4440193. The .dlls that the hotfix has are the same in the DB.

Did we miss something when we were developing our Api portal? We do have some custom API endpoints but they work fine. 

Thank you for the help,

Zan

Parents
  • Well, a few weeks after having installed the patch the problem is back. 

    No newer code has been added, only the Windows OS updates. 

    We've carried out some tests and found a possible cause  Using dev tools we've found that pollyfills.ts stops loading modules when launching qer-app-portal. 

    Is this a IIS config issue or a missing compiler option?

    Thanks!

Reply
  • Well, a few weeks after having installed the patch the problem is back. 

    No newer code has been added, only the Windows OS updates. 

    We've carried out some tests and found a possible cause  Using dev tools we've found that pollyfills.ts stops loading modules when launching qer-app-portal. 

    Is this a IIS config issue or a missing compiler option?

    Thanks!

Children
  • Hi,

    The modules are not loaded because the API requests yield a 404 Not Found error.

    Please check the server log for any error messages at the start time of the process.

  • Hi. Thanks Hanno.

    Yes, the error 404 arises because the folders in apiserver\appdata\webcache\html\qer-app-portal\imx-api-rmb (one of them , for instance) are emtpy.

    At the start of the process , the folders are ok, each module is decompressed and the folders are populated. But during normal operation, we do not know when (although it seems it is when cache expires) , the webcache rebuilds and randomly some modules are not fully decompressed. Why?

    The error log shows:

    2025-05-27 07:40:00.8992 ERROR ( WebLog ) : Error while decompressing plugin tsb to C:\inetpub\wwwroot\ApiServer\App_Data\WebCache\html\tsb System.IO.IOException: El proceso no puede obtener acceso al archivo 'C:\inetpub\wwwroot\ApiServer\App_Data\WebCache\html\tsb\esm2020\public_api.mjs' porque está siendo utilizado en otro proceso.
    en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

    , or:

    2025-05-27 07:40:01.5769 ERROR ( WebLog ) : Error while decompressing application qer-app-portal to C:\inetpub\wwwroot\ApiServer\App_Data\WebCache\html\qer-app-portal System.IO.IOException: El proceso no puede obtener acceso al archivo 'C:\inetpub\wwwroot\ApiServer\App_Data\WebCache\html\qer-app-portal\assets\cordoba-email.png' porque está siendo utilizado en otro proceso.
    en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

    , pointing out that the unzip process failed because a file was in use and , hence, the decompression is  not fully performed rendering the whole module unusable.

    We're not sure if that is something we can control in IIS. The final result is that every day we need to restart IIS several times.

  • Please check the IIS application pool configuration and make sure "Disable overlapped recycle" is set to true.

    You can also disable the periodic restart of the application pool to prevent it from restarting at unexpected times.

  • Done. We'll check it out. Thanks Hanno!!