The following is an index of common issues and errors, along with the resolutions, that might be encountered when developing and deploying custom Asset Compute workers for AEM Assets.
Develop
Rendition is returned partially drawn/corrupted
Error: Rendition renders incompletely (when an image) or is corrupt and cannot be opened.
Cause: The worker’s renditionCallback function is exiting before the rendition can be completely written to rendition.path.
Resolution: Review the custom worker code and ensure all asynchronous calls are made synchronous using await.
Development Tool
Console.json file missing from Asset Compute project
Error: Error: Missing required files at validate (…/node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js:XX:YY) at async setupAssetCompute (…/node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY)
Cause: The console.json file is missing from the root of the Asset Compute project
Resolution: Download a new console.json form your Adobe I/O project
In console.adobe.io, open the Adobe I/O project the Asset Compute project is configured to use
Tap the Download button in the top right
Save the downloaded file to the root of your Asset Compute project using the filename console.json
Incorrect YAML indentation in manifest.yml
Error: YAMLException: bad indentation of a mapping entry at line X, column Y:(via standard out from aio app run command)
Cause: Yaml files are white-spaced sensitive, it likely that your indentation is incorrect.
Resolution: Review your manifest.yml and ensure all indentation is correct.
memorySize limit is set too low
Error: Local Dev Server OpenWhiskError: PUT https://adobeioruntime.net/api/v1/namespaces/xxx-xxx-xxx/actions/xxx-0.0.1/__secured_workeroverwrite=true Returned HTTP 400 (Bad Request) --> “The request content was malformed:requirement failed: memory 64 MB below allowed threshold of 134217728 B”
Cause: A memorySize limit for the worker in the manifest.yml was set below the minimum allowed threshold as reported by the error message in bytes.
Resolution: Review the memorySize limits in the manifest.yml and ensure they are all large than the minimum allowed threshold.
Development Tool cannot start due to missing private.key
Error: Local Dev ServerError: Missing required files at validatePrivateKeyFile… (via standard out from aio app run command)
Cause: The ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH value in .env file, does not point to private.key or private.key is not read-able by the current user.
Resolution: Review the ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH value in .env file, and ensure it contains the full, absolute path to the private.key on your file system.
Source files dropdown incorrect
Asset Compute Development Tool may enter a state where it pulls stale data, and is most noticeable in the Source file dropdown displaying incorrect items.
Resolution: In your browser completely clear the browser tab’s “application state”, the browser cache, local storage and service worker.
Missing or invalid devToolToken query parameter
Error: “Unauthorized” notification in Asset Compute Development Tool
Cause:devToolToken is missing or invalid
Resolution: Close the Asset Compute Development Tool browser window, terminate any running Development Tool processes initiated via the aio app run command, and re-start Development Tool (using aio app run).
Unable to remove source files
Error: There is no way to remove added source files from the Development Tools UI
Cause: This functionality has not been implemented
Resolution: Log into your cloud storage provider using the credentials defined in .env. Locate the container used by the Development Tools (also specified in .env), navigate into the source folder, and delete any source images. YOu may need to perform the steps outlined in Source files dropdown incorrect if the deleted source files continue to display in the dropdown as they may be cached locally in the Development Tools “application state”.
Test
No rendition generated during test execution
Error: Failure: No rendition generated.
Cause: The worker failed to generate a rendition due to an unexpected error such as a JavaScript syntax error.
Resolution: Review the test execution’s test.log at /build/test-results/test-worker/test.log. Locate the section in this file corresponding to the failing test case, and review for errors.
Test generates incorrect rendition causing test to fail
Error: Failure: Rendition ‘rendition.xxx’ not as expected.
Cause: The worker output a rendition that was not the same as the rendition.<extension> provided in the test case.
If the expected rendition.<extension> file is not created in the exact same manner as the locally generated rendition in the test case, the test may fail as there may be some difference in the bits. For example, if the Asset Compute worker changes the contrast using APIs, and the expected result is created by adjusting the contrast in Adobe Photoshop CC, the files may appear the same, but minor variations in the bits may be different.
Resolution: Review rendition output from the test by navigating to /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>, and compare it to the expected rendition file in the test case. To create an exact expected asset, either:
Use the Development Tool to generate a rendition, validate it is correct, and use that as the expected rendition file
Or, validate the test-generated file at /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>, validate it is correct, and use tht as the expected rendition file
Debug
Debugger does not attach
Error: Error processing launch: Error: Could not connect ot debug target at…
Cause: Docker Desktop is not running on the local system. Verify this by reviewing the VS Code Debug Console (View > Debug Console), confirming this error is reported.
Error: When running the Asset Compute worker from the debug-able Development Tool, VS Code does not pause at breakpoints.
VS Code debugger not attached
Cause: The VS Code debugger was stopped/disconnected.
Resolution: Restart the VS Code debugger, and verify it attaches by watching the VS Code Debug Output console (View > Debug Console)
VS Code debugger attached after worker execution began
Cause: The VS Code debugger did not attach prior to tapping Run in Development Tool.
Resolution: Ensure the debugger has attached by reviewing VS Code’s Debug Console (View > Debug Console), and then re-run the Asset Compute worker from Development Tool.
Worker times out while debugging
Error: Debug Console reports “Action will timeout in -XXX milliseconds” or Asset Compute Development Tool’s rendition preview spins indefinitely or
Cause: The worker timeout as defined in the manifest.yml is exceeded during debugging.
Resolution: Temporarily increase the worker’s timeout in the manifest.yml or accelerate debugging activities.
Cannot terminate debugger process
Error: Ctrl-C on the command line does not terminate the debugger process (npx adobe-asset-compute devtool).
Cause: A bug in @adobe/aio-cli-plugin-asset-compute 1.3.x, results in Ctrl-C not being recognized as a terminating command.
Resolution: Update @adobe/aio-cli-plugin-asset-compute to version 1.4.1+
$ aio update
Deploy
Custom rendition missing from asset in AEM
Error: New and re-processed assets process successfully, but are missing the custom rendition
Processing profile not applied to ancestor folder
Cause: The asset does not exist under a folder with the Processing Profile that uses the custom worker
Resolution: Apply the Processing Profile to an ancestor folder of the asset
Processing profile superseded by lower Processing Profile
Cause: The asset exists beneath a folder with the custom worker Processing Profile applied, however a different Processing Profile that does not use the customer worker has been applied between that folder and the asset.
Resolution: Combine, or otherwise reconcile, the two Processing Profiles and remove the intermediate Processing Profile
Asset processing fails in AEM
Error: Asset Processing Failed badge displayed on asset
Cause: An error occurred in the execution of the custom worker