AEM deployment pipeline fails due to invalid OSGi configuration property

Deployment pipelines in Stage and Production environments fail during the Update services substep after running for some time. To fix this, update or remove the empty key in the configuration file and redeploy through Cloud Manager.

Description description

Environment

  • Adobe Experience Manager (AEM) as a Cloud Service
  • Cloud Manager CI/CD Pipelines (Stage/Production)
  • Sling Feature Launcher

Issue/Symptoms

  • Deployment pipeline fails with a system issue message.
  • Failure occurs in the Update services substep after running for more than 2 hours.

Cause

  • Sling Feature Launcher fails to initialize due to an invalid OSGi configuration property in the project codebase.

  • Here’s an example where an OSGi configuration file has an empty property key,

    code language-none
    {
                    "scheduler.expression": "0 0 6 * * ?",
                    "job.enabled": true,
                    "": "notifications@example.com",
                    "emailName": "System Reminder",
                    "emailSubject": "Reminder",
                    "emailMessage": "This is an automated reminder for your content."
                }
    

The empty property (“”) causes AEM to fail while parsing configuration during startup, which leads to the pipeline error in the Update services step.

Resolution resolution

To resolve the issue, update or remove the invalid property in the affected configuration file.

  1. Open the affected configuration file, usually found under:

    ui.config/src/main/content/jcr_root/apps/<project-name>/osgiconfig/config.<runmode>/
    Refer to Configuring OSGi for Adobe Experience Manager as a Cloud Service for more details.

  2. Remove or correct the invalid property.

    Example (correcting the property)

    code language-none
    {
                    "scheduler.expression": "0 0 6 * * ?",
                    "job.enabled": true,
                    "recipientEmail": "notifications@example.com",
                    "emailName": "System Reminder",
                    "emailSubject": "Reminder",
                    "emailMessage": "This is an automated reminder for your content."
                }
    

    Important: Never include secrets, passwords, API keys, or other sensitive information directly in OSGi configuration files. To securely manage sensitive values, use Environment variables in Cloud Manager.

  3. Commit and redeploy the corrected configuration through Cloud Manager. Refer to Deploying to AEM as a Cloud Service in AEM as a Cloud Service User Guide for more details.

After fixing the configuration, the pipeline should execute successfully.

Additional Notes

  • Validate JSON configurations locally before committing, using tools such as jsonlint or IDE-based validation.
  • Ensure all property names are non-empty, unique, and correctly typed.
  • Review AEM as a Cloud Service build logs in Cloud Manager to detect configuration issues early.
  • Keep configurations environment-specific by placing them under config.<runmode> folders (e.g., config.author, config.publish).
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f