RCA-2026-02-24 - Antora Include Path and Tag Mismatches
Executive Summary
Antora documentation builds failed with 50+ errors due to example include paths referencing incorrect file locations and non-existent tags. Root cause was a combination of example file reorganization into subdirectories without updating includes, and documentation pages referencing tags that were never created in example files. Fixed across three repos: domus-infra-ops, domus-netapi-docs, and domus-ise-windows.
Timeline
| Time | Event |
|---|---|
2026-02-24 ~22:00 |
Build errors observed during routine |
2026-02-24 ~22:05 |
Investigation started - analyzed error messages |
2026-02-24 ~22:15 |
Root cause identified: path mismatches and missing tags |
2026-02-24 ~22:45 |
Fixes implemented across 3 repos (18 files) |
2026-02-24 ~23:00 |
Verification complete - build succeeds with 0 errors |
Problem Statement
Symptoms
-
Antora build failed with 50+ ERROR messages
-
Errors of type:
include file not found: /path/to/example$file.adoc -
Errors of type:
tag 'name' not found in include file -
Errors of type:
section title out of sequence
Actual Behavior
[ERROR] asciidoctor: ERROR: runbooks/backup-all-infrastructure.adoc: line 45: include file not found: example$backup-all.sh
[ERROR] asciidoctor: ERROR: runbooks/bind-operations-quick-ref.adoc: line 12: include file not found: example$bind-operations.sh
[WARN] asciidoctor: WARNING: api-reference-v2/pxgrid/services/sessions.adoc: tag 'setup' not found in include file
[WARN] asciidoctor: WARNING: partials/certificate-verification-powershell.adoc: line 3: section title out of sequence
Root Cause
5 Whys Analysis
| Why # | Question and Answer |
|---|---|
1 |
Why did include errors occur? |
2 |
Why didn’t paths match file locations? |
3 |
Why weren’t includes updated when files moved? |
4 |
Why did tag errors occur? |
5 |
Why were non-existent tags referenced? |
Pattern 4: Missing AsciiDoc Attributes
Problem: Pages referenced attributes that weren’t defined in antora.yml.
[WARN] asciidoctor: skipping reference to missing attribute: ise-pan-ip
[WARN] asciidoctor: skipping reference to missing attribute: ise-host
[WARN] asciidoctor: skipping reference to missing attribute: service
Fix approach:
-
Check antora.yml for defined attributes
-
Add missing attributes with appropriate values
-
For generic placeholders, use descriptive values (e.g.,
id: <resource-id>)
Affected repos:
-
domus-ise-linux: Addedise-pan-ip,ise-psn-ip -
domus-netapi-docs: Addedise-host,ise-mnt,ise_api_user,id,service,mac, etc.
Root Cause Statement
|
Documentation pages referenced example files using outdated flat paths (e.g., |
Contributing Factors
| Factor | Description | Preventable? |
|---|---|---|
No path validation |
Antora only validates at build time, not at write time |
Partially (could add pre-commit hook) |
No tag registry |
No inventory of available tags in example files |
Yes (could document available tags) |
Template drift |
Templates assumed tags that were never implemented |
Yes (review templates against reality) |
Section level assumptions |
Partials assumed certain leveloffset without documenting requirement |
Yes (document expected leveloffset) |
Missing attributes |
Pages used attributes not defined in antora.yml |
Yes (audit attributes before using) |
Impact
Resolution
Immediate Actions (What was done)
domus-infra-ops (12 files)
-
Fixed backup script includes:
example$backup-.sh→example$backup/backup-.sh -
Fixed BIND includes:
example$bind-operations.sh→example$dns/bind-operations.sh -
Fixed Vault SSH includes:
example$vault-ssh-→example$vault/vault-ssh- -
Fixed broken xrefs:
dr-shahab-linux-workstation.adoc→linux-research-workstation.adoc
domus-netapi-docs (5 files)
-
Rewrote
dataconnect/queries.adocto use existing tags -
Rewrote
pxgrid/services/sessions.adocto use existing tags -
Rewrote
mnt/sessions.adocto use existing tags -
Rewrote
ers/network-devices/index.adocto use existing tags -
Removed broken xrefs from
ers/endpoints/index.adoc
domus-ise-windows (1 file)
-
Fixed
partials/certificate-verification-powershell.adocsection levels (=== → ==)
Preventive Measures
Lessons Learned
What went well
-
Root cause was quickly identified from error messages
-
Fixes were systematic - pattern-based rather than one-off
-
Used grep/awk to find all affected files at once
What could be improved
-
Should have updated includes when reorganizing example files
-
Should validate tags exist before referencing them
-
Need better documentation of example file structure
Key Takeaways
|
Detection Commands for Future Reference
Related
-
Antora Xref Maintenance - Related cross-reference rules
-
2026-02-21 Backup Docs - Previous documentation fix session