DITA Publish Error


Condition

Users may receive a dependency mark-for-publish CMS error message after running a publish action on a DITA map.

DITA Publish

 Configure DITA Publishing

This error prevents a DITA map and its dependencies from publishing. If you experience this condition, the error will be similar to the following:

Error performing request: Cannot continue publish, following dependency content are not yet marked for publishg: a/66,a/69,a/74

DITA Publish

In the CMS Administration > Maintenance logs, you will see an error similar to this:

Condition
[ERROR] [2024-02-03 14:22:59.5100] - [admin from 127.0.0.1 on 10.6.319.0] - Error executing action: Publishing Assets a/61Staging to PubTarget Incremental - publish type: admin. Submitted by User ID: admin.:
System.ArgumentException: Cannot continue publish, following dependency content are not yet marked for publishg: a/66,a/69,a/74 
   at Ingeniux.CMS.PublishingManager.gatherAdditionalContentFromDependencyForPublish(IPublishingTarget target, IEnumerable`1& markedPages, IEnumerable`1& markedAssets, IDependencyNode[]& selectedDependencies, Boolean gatherDepForAllAssets)
   at Ingeniux.CMS.PublishingManager.CreateTask(IEnumerable`1 pages, IEnumerable`1 assets, Boolean incremental, IPublishingTarget pubTarget, Action`2 postPageFilterCallback, Boolean replicate, Boolean pagesPublish, Boolean assetsPublish, IDependencyNode[] dependenciesToProcess)
   at Ingeniux.CMS.PublishingTarget.createPublishingTask(Boolean incremental, Boolean replicate, List`1 markedPages, List`1 markedAssets, Boolean alwaysIncludePages, Boolean alwaysIncludeAssets, IDependencyNode[] selectedDependencies)
   at Ingeniux.CMS.PublishingTarget.<>c__DisplayClass268_0.<PublishAssets>b__1()
   at Ingeniux.CMS.TransactionalEntity.ExcuteWithLogging(Action callback, String actionMessage, Boolean debugLogging, Action cleanupCallback, Action`2 logOverride)

Cause

This error occurs when one or more dependencies (both DITA and non-DITA files) associated with the DITA map you want to publish are not marked for the appropriate publishing target.

The publish error is CMS-related and is not generated from the DITA Open Toolkit (DITA-OT). When publishing a DITA map, the CMS requires all dependencies of that map to be marked for publish. If you do not want to publish some dependencies, then remove them from the dependency structure.

Tip
If you do not know where the dependency is located within the map dependency structure, review the map's Depends On tab in DITA Properties. See DITA "Depends On" Properties for details. Also, see Dependency Structures for details about the map dependency structure.

Remedy Part 1: Marking Dependencies for Publish

Users can resolve this error by marking all dependencies for the publishing target. Users can mark dependencies individually, in batches, or all at once.

To mark dependencies for publish, choose one of the following options:

  • Mark each individual dependency for publish.
    1. When the CMS error message displays, note each dependency listed in the message.

      The publish error indicates these dependencies are not marked for publish to the appropriate publishing target. The publish cannot run until all dependencies referenced in the map you want publish are marked.

    2. Navigate to one of the listed dependency a/IDs in the Assets Manager.
    3. Ensure the asset item is checked in.
      Important

      If the item is checked out, then click the Check In button in the item's Overview tab, and check in the item to the appropriate publishing target. Click OK.

      Remember, you can only mark asset items for publish that have been checked in at least once. The CMS prevents users from marking asset items for publish that have never been checked in.

      Check In Asset

    4. Click the Mark for Publish button in the Overview tab.
    5. Select the appropriate target in the Publishing Targets list, and then select the Current Version drop-down item for the target in the Targets to Mark list.

      CMS 10.6 Change Content Publish Marking

    6. Click Confirm Publish Marking.
    7. Repeat these steps as necessary until all a/IDs listed from the original error message are marked for publish.
      Note
      Alternatively, if a parent folder contains more than one of the listed dependencies, you can use the Check In and Mark for Publish actions directly on the folder to apply the actions to the descendant items.
    8. If you still have remaining unmarked dependencies you want to suppress instead of publish, see the Remedy Part 2 steps.
    9. Run the DITA publish from the appropriate map.

      See Publishing DITA Content for details.

      Troubleshooting
      If you still experience this CMS error, review the remedy steps again, and address the a/IDs indicated in the error message. If the CMS error no longer occurs on publish, but you encounter new log errors during DITA-OT processing, see DITA Publish Log Entries Flag Errors for details.
  • Mark all dependencies for publish directly from the DITA map.
    1. Go to the DITA map in the Asses Manager you want to publish, and select the DITA Properties > Map Details tab.
    2. Click Check In in the Map Details toolbar.
      Caution

      Keep the following in mind regarding the Check In button:

      • This button is a batch action that checks in the latest version of all dependencies (i.e., all dependencies listed in the Depends On tab) associated with the current map. This includes dependencies never checked in within the CMS.

      • This button becomes available only when the DITA map is checked out. If you do not want to run the batch Check Out action in the Map Details tab, then check out the map from the Overview tab.

      Check In Asset

    3. Choose the publishing target where you want to check in all the dependencies, and click OK.

      The CMS checks in all map dependencies. Review the Check In DITA Map Collection dialog that displays to see the a/ID of each checked-in dependency.

    4. Click the Publish Marking button in the Map Details toolbar to mark.
      Caution

      Keep the following in mind regarding the Publish Marking button:

      • This button is a batch action that marks/unmarks all dependencies (i.e., all dependencies listed in the Depends On tab) of the current map to the publishing target. Ensure you want to publish all dependencies before marking them.

      • Ensure all dependencies are checked in before clicking Publish Marking. If dependencies have never been checked in, this action will not mark them for publish.

    5. Select the appropriate target in the Publishing Targets list, and then select the Current Version drop-down item for the target in the Targets to Mark list.

      CMS 10.6 Change Content
                      Publish Marking

    6. Click Confirm Publish Marking.

      The CMS marks all map dependencies for publish to the publishing target.

    7. Run the DITA publish from the appropriate map.

      See Publishing DITA Content for details.

      Troubleshooting
      If the CMS error no longer occurs on publish, but you encounter new log errors during DITA-OT processing, see DITA Publish Log Entries Flag Errors for details.

Remedy Part 2: Suppressing Dependencies from the Map Structure

If users do not want to publish all dependencies associated with a map, they can remove dependencies from the map structure and unmark them from the publishing target.
Note
If users want to publish all dependencies associated with the map, then skip this part.

To suppress dependencies from the map:

  1. When the CMS error message displays, note each dependency a/ID listed in the message.

    These dependencies are not marked for publish to the appropriate publishing target.

  2. In the Assets Manager, go to one of the dependency a/IDs you want to suppress from the dependency structure.
  3. Select the DITA Properties > Used By tab.
  4. Go to the direct DITA file that references the asset item you want to suppress from the dependency structure.
    Note
    • DITA files listed in Direct Usage References are referencing the dependency you want to suppress. The referencing DITA file may be a map or topic.

    • The dependency may be referenced by more than one DITA file that is part of the dependency structure you're publishing. When going through these steps, ensure you suppress the dependency from all DITA files part of the dependency structure.

    • If you're unsure which DITA files are part of the dependency structure you're publishing, go to the DITA file's DITA Properties > Used By tab and check All Usage References to see if the map you're publishing is a usage reference for that DITA file. If yes, then that DITA file is part of the dependency structure.

    Check In Asset

  5. Complete the following steps to remove the dependency reference from the DITA file:
    1. Check out the referencing DITA file, and go to the Edit tab.
    2. If necessary, click Format to organize and indent the DITA content within the editor.
    3. Press CTRL+F to open the search tool, and search for the dependency a/ID you want to suppress.

      Check In Asset

    4. Either comment out or delete the element that references the dependent a/ID.
      Tip
      If you plan to publish the dependency in the future, you may want to comment out the referencing element for now.

      Check In Asset

    5. Check in the DITA file you edited, and ensure this file is marked for publish to the appropriate publishing target.
  6. Repeat these steps as necessary until all the dependencies you want to suppress are removed from the dependency structure.
    Tip

    If you want to delete the referenced file in addition to removing the reference from the dependency structure, see [ Deleting Assets from DITA Collections for details.

  7. If you still have remaining unmarked dependencies you want to publish instead of suppress, see the Remedy Part 1 steps.
  8. Run the DITA publish from the map.

    See Publishing DITA Content for details.

    Troubleshooting
    If you still experience this CMS error, review the remedy steps again, and address the a/IDs indicated in the error message. If the CMS error no longer occurs on publish, but you encounter new log errors during DITA-OT processing, see DITA Publish Log Entries Flag Errors for details.