Missing jcr:mimeType prevents .vtt assets from processing correctly in Experience Manager Assets

In Experience Manager Assets, older .vtt (WebVTT) assets that are missing the jcr:mimeType property don’t process correctly in workflows that require MIME-type detection, including translation workflows. New uploads set jcr:mimeType to text/vtt when the MIME mapping is available. To fix this, identify affected assets, set the missing property to text/vtt through a controlled administrator or developer process, and verify the MIME mapping for future uploads.

Description description

Environment

Adobe Experience Manager Assets with Dynamic Media in Scene7 mode and asset translation workflows

Issue/Symptoms

  • .vtt (WebVTT) files in DAM are missing the jcr:mimeType property under /jcr:content/renditions/original/jcr:content.
  • Translation workflows fail or skip the affected assets because the file type can’t be determined.
  • Reprocessing the affected assets doesn’t populate jcr:mimeType, but deleting and reuploading the assets does.
  • New .vtt uploads correctly set jcr:mimeType to text/vtt.
  • Older uploads and assets ingested through bulk tools or custom integrations are missing the property.

Cause

Older .vtt assets were uploaded before the correct MIME-type mapping existed or through an ingestion method that didn’t assign the required MIME metadata. As a result, jcr:mimeType wasn’t set on the original rendition, so workflows that require MIME-type detection couldn’t process the asset. New uploads set jcr:mimeType to text/vtt after the mapping is available.

Resolution resolution

To repair affected .vtt assets and prevent future occurrences, follow these steps:

  1. Identify the affected .vtt assets by querying for dam:Asset nodes under /content/dam where the original rendition lacks jcr:mimeType.

  2. Run one of the following queries:

    Run this JCR-SQL2 query:

    code language-none
    SELECT [ jcr:path]
    FROM [ dam:Asset]  AS a
    WHERE ISDESCENDANTNODE(a, '/content/dam')
      AND NAME(a) LIKE '%.vtt'
      AND (
        a.[ jcr:content/renditions/original/jcr:content/jcr:mimeType]  IS NULL
        OR a.[ jcr:content/renditions/original/jcr:content/jcr:mimeType]  = ''
      )
    

    Alternatively, run this XPath query:

    code language-none
    /jcr:root/content/dam//element(*, dam:Asset)[ jcr:like(fn:name(), '%.vtt') and not(jcr:content/renditions/original/jcr:content/@jcr:mimeType)]
    

    If ACS AEM Commons is installed, run the JCR-SQL2 query through a JCR SQL2 Query Report.

  3. For each affected asset, set jcr:mimeType to text/vtt on /jcr:content/renditions/original/jcr:content by using a controlled workflow, maintenance script, or deployment-appropriate AssetManager API while retaining the existing binary.

  4. If the translation rules require additional metadata, set dc:format or dam:MIMEtype to text/vtt under /jcr:content/metadata.

  5. Upload a test .vtt file and verify that jcr:mimeType is set to text/vtt.

  6. If new uploads don’t receive the MIME type, verify that the Apache Sling MIME Type Service maps .vtt to text/vtt.

  7. Verify that manual, bulk, and API-based upload methods provide the correct MIME type for .vtt files.

  8. Reprocess the affected assets and verify that the translation workflow processes them successfully.

recommendation-more-help
experience-cloud-kcs-help-kbarticles