Developer tool errors
These errors are returned by the commands that create and check parts of the
project: scaffold, preview, qa, documentation, and the same set of
operations through the local MCP. How these commands work is described in
SDK for developers and AI agents.
Most commands work in two steps: first --dry-run makes a plan and returns
its hash plan_id, then --apply=<plan_id> applies exactly that plan. If
the project changed between the steps, the plan is not applied.
Project
| Code | Cause and what to do |
|---|---|
SDK_PROJECT_ROOT_INVALID |
The project folder is a symbolic link or does not exist. What to do: Run the command from the real project folder. |
SDK_PROJECT_CONFIG_MISSING |
The folder has no ordinary docara.json file. What to do: Go to the site folder or create a project with docara init. |
SDK_PROJECT_CONFIG_INVALID |
docara.json is not valid JSON. What to do: Fix the syntax of the file. |
SDK_PROJECT_NAMESPACE_INVALID |
smart.namespace in docara.json contains forbidden characters. What to do: Start the name with a lowercase Latin letter and use only lowercase letters, digits, _ and -, for example project. |
SDK_PROJECT_OWNED_ROOT_UNSAFE |
The smart/ or design/ folder that the commands write to is a symbolic link. What to do: Replace the link with an ordinary folder. |
SDK_WRITE_PATH_UNSAFE, SDK_WRITE_COLLISION |
The command cannot write a file safely: the path leads outside the project, goes through a link, or the file already exists. What to do: Remove the link or the existing file named in the message, and run --dry-run again. |
SDK_DISCOVERY_KIND_UNKNOWN, SDK_SCHEMA_KIND_UNKNOWN |
The list, inspect or schema command got an unknown kind. What to do: Take a kind from docara list or from the command’s --help. |
SDK_TEST_LAYOUT_CONTEXT_MISMATCH |
docara test layout got a page that uses another layout. What to do: Give in --page a page where this layout is actually chosen. |
SDK_ARGUMENT_REQUIRED |
The command lacks a required argument; its name follows the colon in the message. What to do: Add the argument, for example id for validate smart <id>. |
SDK_DISCOVERY_SUBJECT_UNKNOWN |
inspect did not find an object with this id. What to do: Take the id from docara list <kind>. |
SDK_VALIDATION_KIND_UNKNOWN, SDK_TEST_KIND_UNKNOWN |
validate or test got an unknown kind. What to do: For validate give project, page, source, smart, layout, view, section or block; for test, smart or layout. |
SDK_TEST_PAGE_REQUIRED |
docara test was run without a page. What to do: Add --page=/en/address/. |
SDK_OPERATION_UNKNOWN |
An unknown operation was called through MCP or the SDK. What to do: Use the operations from docara capabilities --json. |
SDK_INPUT_INVALID |
A command argument is written incorrectly. What to do: Check docara <command> --help. |
SDK_OPERATION_FAILED |
The operation stopped for a reason that has no code of its own. What to do: Read the message text; if it does not help, see Internal errors. |
Starters: scaffold
| Code | Cause and what to do |
|---|---|
SCAFFOLD_KIND_INVALID |
An unknown starter kind. What to do: Give smart, design or page. |
SCAFFOLD_NAMESPACE_FORBIDDEN |
The component name does not start with the project namespace. What to do: Write project.name if docara.json has "namespace": "project". |
SCAFFOLD_TARGET_EXISTS |
The starter file or folder already exists. What to do: Choose another name or delete the old starter. |
SCAFFOLD_PAGE_ARGUMENT_REQUIRED |
The language or the title is not given for a page. What to do: Add --locale=en --title="…". |
SCAFFOLD_PAGE_ROUTE_INVALID |
The page address is written incorrectly. What to do: Write it in lowercase Latin letters, digits and hyphens inside the language: guides/new-page. |
SCAFFOLD_PAGE_PROFILE_INVALID |
An unknown page type in --type, or the template from --template has no profile and --type is not given. What to do: Give landing, article, tutorial, how_to, reference or explanation, or add a profile to the template. |
SCAFFOLD_PAGE_SOURCE_ARGUMENT_INVALID |
Only one of --source and --entity is given. What to do: Give both or neither. |
SCAFFOLD_PAGE_VALIDATION_FAILED |
The page was created, but the build does not find it, for example because a navigation setting hides it. What to do: Check the section.json of the section and run docara validate page <address>. |
SCAFFOLD_DRY_RUN_REQUIRED |
A plan is applied without a preview first. What to do: First run the command with --dry-run, then --apply=<plan_id>. |
SCAFFOLD_PLAN_ID_INVALID |
The wrong hash was passed to --apply. What to do: Copy the whole plan_id from the --dry-run answer. |
SCAFFOLD_PLAN_INVALID, SCAFFOLD_PLAN_HASH_MISMATCH |
The plan file in .docara/sdk-plans/ is damaged or was changed by hand. What to do: Make the plan again with --dry-run. |
SCAFFOLD_PLAN_STALE, SCAFFOLD_CONTENT_HASH_MISMATCH |
After --dry-run, docara.json or the files the plan was going to write changed. What to do: Run --dry-run again and apply the new plan. |
SCAFFOLD_PLAN_COLLISION |
A plan with this hash is already written. What to do: Apply it with --apply=<plan_id> or delete the plan file from .docara/sdk-plans/. |
SCAFFOLD_SOURCE_TEMPLATE_INVALID |
The example template from the documentation source is damaged. What to do: Update the source and run --dry-run again. |
Fragment preview: preview
docara preview shows one component, region or layout from a finished page
of the site.
| Code | Cause and what to do |
|---|---|
PREVIEW_PAGE_INVALID, PREVIEW_PAGE_UNKNOWN |
The page in --page is not written as a public address, or there is no such page. What to do: Give the address with / at the start and end: /en/project-demos/. |
PREVIEW_PAGE_MISSING, PREVIEW_PAGE_OUTPUT_INVALID, PREVIEW_RECEIPT_INVALID |
The page is not built yet, or the build is out of date. What to do: Run a full build and try again. |
PREVIEW_SELECTOR_INVALID, PREVIEW_SELECTOR_FORBIDDEN |
--selector is given for page or layout, or for other kinds it is missing or written incorrectly. What to do: For page and layout remove --selector; for the others give the name in lowercase: --selector=ui.dropdown. |
PREVIEW_TARGET_NOT_FOUND |
The page has no such component or region. What to do: Choose a page where it stands, or check the name. |
PREVIEW_WATCH_OPTIONS_INVALID |
--interval or --max-cycles is outside the allowed values. What to do: Give an interval from 50 to 5000 milliseconds and a number of cycles of at least 0. |
PREVIEW_DEPENDENCY_PATH_INVALID |
A file that --watch follows lies outside the project or became a link. What to do: Remove the link and restart the preview. |
PREVIEW_OUTPUT_COLLISION, PREVIEW_PUBLIC_ROOT_INVALID, PREVIEW_PUBLIC_ROOT_PURPOSE_INVALID, PREVIEW_PUBLIC_FILE_INVALID, PREVIEW_HTML_INVALID, PREVIEW_ASSET_PROVENANCE_INVALID |
The preview folder is taken, damaged or not built for preview. What to do: Delete the preview folder named in the message and run the command again. |
Visual check: qa
docara qa captures a component, region or layout in the light and dark
theme, on a wide and a narrow screen, and compares the captures with a
reference.
| Code | Cause and what to do |
|---|---|
QA_KIND_INVALID |
An unknown check kind. What to do: Give smart, region or layout. |
QA_LAYOUT_CONTEXT_MISMATCH |
The page in --page uses another layout. What to do: Give a page where this layout is chosen. |
QA_TARGET_LOCATOR_MISSING, QA_TARGET_BINDING_INVALID |
The checked element was not found on the page, or the plan belongs to another element. What to do: Check the name and the page, and make the plan again with --dry-run. |
QA_PLAN_ID_INVALID, QA_PLAN_ID_MISMATCH, QA_ARTIFACT_INVALID, QA_PREVIEW_BINDING_INVALID, QA_PLAN_COLLISION |
The plan in .docara-qa/plans/ does not match its hash, is damaged or already exists. What to do: Pass the exact plan_id from the --dry-run answer or make the plan again. |
QA_REFERENCE_DRAFT_INVALID, QA_REFERENCE_DRAFT_BINDING_INVALID, QA_REFERENCE_DRAFT_SCENARIOS_INVALID, QA_REFERENCE_COLLISION |
The reference draft is incomplete, was captured for another plan or is already approved. What to do: Capture the reference again for the current plan and run --finalize-reference again. |
QA_REFERENCE_INVALID, QA_REFERENCE_BINDING_INVALID, QA_REFERENCE_ID_MISMATCH, QA_REFERENCE_MANIFEST_MISMATCH |
An approved reference was changed after approval. What to do: Do not edit the reference captures by hand; approve a new reference. |
QA_SCREENSHOT_INVALID, QA_REPORT_BINDING_INVALID, QA_REPORT_SCENARIOS_INCOMPLETE |
There are fewer captures than in the plan, or the report was made for another plan. What to do: Run the comparison again for the approved plan. |
QA_VISUAL_DIFF_MISMATCH |
A capture differs from the reference. What to do: Look at the difference; if the change is intended, approve a new reference. |
QA_ACCEPTANCE_FAILED |
There are accessibility errors, browser console errors or horizontal scrolling. What to do: Fix the problems found in the report and run the check again. |
Documentation tracking
Tracking compares pages with sources, for example with the description of SIMAI Framework components. The setup is described in Documentation freshness.
| Code | Cause and what to do |
|---|---|
DOCUMENTATION_TRACKING_DISABLED |
Tracking is off. What to do: Turn on documentation_tracking in docara.json. |
DOCUMENTATION_PROVIDER_UNKNOWN |
An unknown source provider. What to do: Give simai_framework or contract_json. |
DOCUMENTATION_SOURCE_UNKNOWN, DOCUMENTATION_SOURCE_DUPLICATE, DOCUMENTATION_SOURCE_ID_MISMATCH |
The source is not configured, is given twice, or its id in the settings does not match the id in the source file. What to do: Keep one source with the same id in both places. |
DOCUMENTATION_SOURCE_CONTRACT_INVALID, DOCUMENTATION_SOURCE_HASH_MISMATCH |
The source file is damaged or does not match the pinned version. What to do: Restore the source file from the same version as in simai-framework.lock.json. |
DOCUMENTATION_FRAMEWORK_LOCK_INVALID, DOCUMENTATION_FRAMEWORK_RULES_INVALID, DOCUMENTATION_FRAMEWORK_RULES_MISSING |
The pinned SIMAI Framework version does not suit this Docara version. What to do: Update Docara or restore the lock that it ships. |
DOCUMENTATION_ENTITY_UNKNOWN, DOCUMENTATION_ENTITY_DUPLICATE |
The source has no entity with this key, or the key repeats. What to do: Take the key from docara documentation status --json. |
DOCUMENTATION_ROUTE_INVALID, DOCUMENTATION_ROUTE_LOCALE_INVALID |
The page of the entity was not found, several were found, or it is not in the main language of the source. What to do: Link the entity to one page in the source_locale language. |
DOCUMENTATION_EXAMPLE_CASES_MISSING |
The page lacks required examples listed in the source. What to do: Add the examples named in the message. |
DOCUMENTATION_EXCLUSION_REASON_REQUIRED |
An entity is excluded without a reason. What to do: Write the reason for the exclusion. |
DOCUMENTATION_REVIEW_INVALID |
An unknown review kind in --review. What to do: Give ai_verified or human_reviewed. |
DOCUMENTATION_STATUS_FILTER_INVALID |
An unknown status in --status. What to do: Take a status from Statuses. |
DOCUMENTATION_LOCK_INVALID, DOCUMENTATION_LOCK_DUPLICATE, DOCUMENTATION_LOCK_SOURCE_LOCALE_MISMATCH |
documentation.lock.json is damaged, an entity is recorded in it twice, or its language does not match the settings. What to do: Do not edit the file by hand: restore it from history and accept the changes with docara documentation accept. |
DOCUMENTATION_LINKAGE_NOT_CONFIGURED |
docara documentation linkage ran, but no source has linkage. What to do: Add linkage to a source in documentation_tracking.sources. |
DOCUMENTATION_LINKAGE_INVENTORY_INVALID, DOCUMENTATION_LINKAGE_CHANGES_INVALID, DOCUMENTATION_LINKAGE_JOURNAL_INVALID |
A SIMAI Framework unit inventory, change report or change journal has the wrong format, is damaged or lies outside the project. What to do: Copy the release’s file unchanged: simai.framework.unit-inventory, simai.framework.unit-change-report or simai.change-journal. |
DOCUMENTATION_LINKAGE_USAGE_INVALID |
The usage record in linkage.usage does not match simai.framework.unit-usage version 1; the message lists the fields. What to do: Fix the fields it names. |
DOCUMENTATION_LINKAGE_BASELINE_REQUIRED |
It is unknown which release the pages were last brought up to. What to do: Set linkage.since to that release’s unit inventory, or set linkage.usage. |
DOCUMENTATION_LINKAGE_RELEASE_MISMATCH |
Warning: the inventory in linkage.inventory is not from the release simai-framework.lock.json pins. What to do: Use the pinned release’s inventory. |
DOCUMENTATION_PLAN_ID_INVALID, DOCUMENTATION_PLAN_INVALID, DOCUMENTATION_PLAN_HASH_MISMATCH, DOCUMENTATION_PLAN_COLLISION |
The plan in .docara/documentation-plans/ does not match its hash, is damaged or already exists. What to do: Pass the exact plan_id from the --dry-run answer or make the plan again. |
DOCUMENTATION_PLAN_STALE |
A page or the source changed after --dry-run. What to do: Run --dry-run again and apply the new plan. |
DOCUMENTATION_PAGE_INVALID, DOCUMENTATION_INPUT_UNSAFE |
A page or source file is a link or lies outside the project. What to do: Replace the link with an ordinary file inside the project. |
DOCUMENTATION_WRITE_FAILED, DOCUMENTATION_WRITE_PATH_UNSAFE, DOCUMENTATION_WRITE_CASE_COLLISION |
A file could not be written: no permissions, the path goes through a link, or it differs from an existing one only in letter case. What to do: Fix the path or the permissions and try again. |
DOCUMENTATION_SOURCE_COMPATIBILITY_ADAPTER |
A warning: the pinned SIMAI Framework version has no description of its own for tracking, and Docara builds one from the Framework rules it ships itself. What to do: Nothing; the warning goes away when the pinned Framework version starts shipping its own description. |
Local MCP
| Code | Cause and what to do |
|---|---|
MCP_METHOD_NOT_FOUND, MCP_TOOL_UNKNOWN |
The client called a method or tool that Docara does not have. What to do: Get the list of tools with the tools/list method and call only those. |
MCP_WRITE_CAPABILITY_REQUIRED |
Applying a plan is forbidden: MCP was started read-only. What to do: Review the plan, then restart the local MCP with --allow-writes. |