Skip to content
Navigation

Primary

Presentation and extension errors

These errors concern how the page frame is assembled: the menu, layout regions, your own shell sections, project components in smart/, layouts and sections in design/, and composition recipes. How this works is described in Layout regions and Interface composition.

Code Cause and what to do
DECLARATIVE_NAVIGATION_DEPTH_EXCEEDED The menu came out deeper than four levels. What to do: Move pages deeper than the fourth level up, or merge sections.
DECLARATIVE_CONTAINER_MAX_INVALID layout.container.max is not a whole number from 1 to 8. What to do: Give a number from 1 to 8; 7 suits most sites.
DECLARATIVE_CONTENT_GAP_INVALID layout.content.gap is not a whole number from 0 to 8. What to do: Give 0 for an ordinary article, or a number up to 8 for a landing page.
DECLARATIVE_REQUIRED_REGION_DISABLED The main main region is turned off. What to do: Remove layout.regions.main.enabled: false.
DECLARATIVE_LAYOUT_CONFIGURATION_INVALID layout.key names a layout that is not registered. What to do: Give docara.docs or a project layout from design/layouts/.
DECLARATIVE_SHELL_BRANDING_INVALID A dark theme logo is set without the main logo, or the logo mode is chosen without a logo file. What to do: Give the main logo in the brand section.

Your own region composition

The regions layout.regions.<region>.sections are assembled from sections and blocks.

Code Cause and what to do
DECLARATIVE_REGION_UNKNOWN layout.regions names a region that the layout does not have. What to do: Use header, sidebar, main, outline or footer.
DECLARATIVE_REGION_CONFIGURATION_INVALID, DECLARATIVE_REGION_SECTION_INVALID, DECLARATIVE_REGION_BLOCK_INVALID, DECLARATIVE_REGION_ELEMENT_INVALID The description of a region, section or block is written incorrectly: not an object, no id or section, an unknown field. What to do: Compare the record with the example in Your own region composition.
DECLARATIVE_REGION_SECTION_LIMIT_EXCEEDED, DECLARATIVE_REGION_BLOCK_LIMIT_EXCEEDED A region has more than 8 sections, or a section more than 12 blocks. What to do: Merge or remove the extra ones.
DECLARATIVE_SECTION_INSTANCE_ID_DUPLICATED, DECLARATIVE_BLOCK_INSTANCE_ID_DUPLICATED, DECLARATIVE_DOCUMENT_NODE_ID_DUPLICATED Two elements got the same id. What to do: Give each section and block its own id.
DECLARATIVE_DOCUMENT_REGION_MANAGED The page itself fills the main region; it cannot be described with sections. What to do: Remove sections from main.
DECLARATIVE_SECTION_CAPABILITY_MISMATCH, DECLARATIVE_SECTION_REGION_FORBIDDEN The section does not suit this region. What to do: Put it in the region it is meant for; docara atlas --json shows which.
DECLARATIVE_BLOCK_SECTION_FORBIDDEN, DECLARATIVE_BLOCK_SLOT_FORBIDDEN, DECLARATIVE_REGION_BLOCK_KIND_FORBIDDEN, DECLARATIVE_BLOCK_PAYLOAD_MISMATCH The block cannot stand in this section or in this place of the section, or its data does not suit its kind. What to do: Use shell.element or shell.smart and compare the fields with the example.
DECLARATIVE_ELEMENT_INVALID, DECLARATIVE_ELEMENT_HREF_FORBIDDEN, DECLARATIVE_ELEMENT_HREF_INVALID, DECLARATIVE_ELEMENT_ARIA_LABEL_INVALID A shell.element is written incorrectly: href is given on something that is not a link, the link does not lead to an address of this site, or the screen reader label is empty. What to do: Give href only to an a element, write the address from the site root and fill in the label.
DECLARATIVE_REGION_SET_PASSPORT_INVALID, SET_PASSPORT_PACKAGE_UNKNOWN, SET_PASSPORT_INVALID A shell.set-passport block is written incorrectly, is outside the footer or names a package that is not a component set in simai-framework.lock.json; or the set’s set.json cannot be read or has no title. What to do: Put the block in the footer region, give the set’s name from the lock in package and an address from the site root in history; if set.json is at fault, take the set’s package again.
DECLARATIVE_VIEW_UTILITY_NOT_ALLOWED utilities names a class that is not in the pinned SIMAI Framework version. What to do: Use classes from the Framework utility reference.
DECLARATIVE_AUTHOR_EXECUTABLE_SURFACE_FORBIDDEN The layout settings have a field that looks like a template or code (its name has template, html, script, style, php, path and the like), or a value with <script, <style, <?php, javascript:. Settings only choose registered parts. What to do: Remove this field; make your own markup a section in design/.

Shell data bindings

Code Cause and what to do
DECLARATIVE_REGION_BINDING_FORBIDDEN, DECLARATIVE_BINDING_CAPABILITY_MISMATCH bind names an unknown binding or a binding that does not suit this region. What to do: Take a binding for the region you need from docara atlas --json.
BINDING_SMART_MISMATCH, BINDING_PRESENTATION_FORBIDDEN The binding cannot fill this component or its view. What to do: Choose a component and view listed for the binding.
BINDING_OWNED_PROP_COLLISION A parameter that the binding fills is also set by hand. What to do: Remove this parameter from props.

Project components

Project components live in smart/<name>/. The easy way to create them is docara scaffold smart <name> --dry-run.

Code Cause and what to do
SMART_PROJECT_NAMESPACE_RESERVED The ui or docara namespace is taken by built-in components. What to do: Choose another name in smart.namespace, for example project.
SMART_PROVIDER_NAMESPACE_INVALID, SMART_PROVIDER_NAMESPACE_REQUIRED, SMART_PROVIDER_NAMESPACE_NOT_OWNED, SMART_PROVIDER_NAMESPACE_COLLISION The component name does not start with the project namespace, or it matches someone else’s. What to do: Name the folder smart/<namespace>.<name>/, for example smart/project.notice/.
SMART_PROVIDER_JSON_INVALID, SMART_MANIFEST_INVALID, DECLARATIVE_SMART_MANIFEST_INVALID manifest.json or a view file is not valid JSON or lacks fields, for example a parameter example for the atlas. What to do: Run docara validate smart <name> and fix the named field.
SMART_PROVIDER_TEMPLATE_REQUIRED The component’s template/ folder has no .php or .blade.php template. What to do: Add a template, for example template/default.php.
SMART_PROVIDER_ASSET_INVALID The path to a style or script in the assets section of manifest.json is not written as a string, or the file does not exist. What to do: Put the file into the component folder and give its path as a string.
SMART_PROVIDER_ALIASES_INVALID The extra component names in extensions.docara.aliases are written incorrectly. What to do: Write them as an object {"other.name": "reason"} with a non-empty reason.
SMART_PROVIDER_ROOT_UNSAFE, SMART_PROVIDER_PATH_UNSAFE, SMART_PROVIDER_SYMLINK_FORBIDDEN The component folder has a symbolic link, or a path leaves smart/. What to do: Replace the links with ordinary files.
SMART_REGISTRY_COMPONENT_NOT_FOUND A page or command names a component that does not exist, usually a typo in the name after :::. What to do: Take the name from docara list smart.
DECLARATIVE_COMPOSITE_PRESET_UNKNOWN, DECLARATIVE_COMPOSITE_PRESET_INVALID The composite component has no such preset, or it is not written as a string. What to do: Take the preset name from docara inspect smart <name> --json.
DECLARATIVE_COMPOSITE_PROPS_INVALID, DECLARATIVE_COMPOSITE_MANIFEST_INVALID The parameters of the composite component do not suit its description, or the description is damaged. What to do: Compare the parameters with docara inspect smart <name> --json.

Project layouts and sections

Your own layouts, views, sections and blocks live in design/layouts/, design/views/, design/sections/ and design/blocks/.

Code Cause and what to do
DESIGN_PROJECT_NAMESPACE_RESERVED The docara, content, shell or ui namespace is taken. What to do: Use the project namespace.
DESIGN_ARTIFACT_JSON_INVALID A file in design/ is not valid JSON. What to do: Fix the syntax.
DESIGN_ARTIFACT_ID_INVALID, DESIGN_VIEW_ID_INVALID The file name or id is written incorrectly. What to do: Name views layout.<namespace>.<name> or section.<namespace>.<name>.
DESIGN_ARTIFACT_NAMESPACE_FORBIDDEN, DESIGN_NAMESPACE_COLLISION The description uses someone else’s namespace. What to do: Use the project namespace.
DESIGN_ARTIFACT_DUPLICATE Two descriptions with the same id. What to do: Rename one.
DESIGN_ARTIFACT_PATH_INVALID, DESIGN_ARTIFACT_OUTSIDE_ROOT, DESIGN_PROVIDER_ROOT_INVALID, DESIGN_PROVIDER_ROOT_MISSING, DESIGN_PROVIDER_DIRECTORY_INVALID The design/ folder or a subfolder is a link or does not exist, or a file is not in its own subfolder. What to do: Keep the files in ordinary folders design/layouts, views, sections, blocks.
DESIGN_DEFAULT_LAYOUT_INVALID No layout, or several layouts, are declared the default layout. What to do: Keep exactly one.
DESIGN_LAYOUT_VIEW_INVALID, DESIGN_LAYOUT_REGION_CONTRACT_INVALID, DECLARATIVE_LAYOUT_VIEW_REGIONS_MISMATCH The layout refers to a view that does not exist, or the view does not place all layout regions or places one twice. What to do: Place each layout region in the view exactly once.
DESIGN_SECTION_VIEW_INVALID, DESIGN_SECTION_SLOT_CONTRACT_INVALID, DESIGN_SECTION_REGION_CONTRACT_INVALID, DESIGN_SECTION_BLOCK_CONTRACT_INVALID, DECLARATIVE_SECTION_VIEW_SLOTS_MISMATCH The section refers to a view or block that does not exist, its slots do not match the view, or it does not suit the given region. What to do: Check the section with docara validate section <id>.
DESIGN_VIEW_TREE_INVALID, DECLARATIVE_VIEW_TAG_NOT_ALLOWED, DECLARATIVE_VIEW_ATTRIBUTE_NOT_ALLOWED, DECLARATIVE_VIEW_ATTRIBUTE_INVALID, DECLARATIVE_VIEW_UTILITY_INVALID, DECLARATIVE_VIEW_NODE_INVALID, DECLARATIVE_VIEW_TARGET_DUPLICATED The view tree uses a forbidden tag or attribute, is written incorrectly or places one slot twice. What to do: Use the allowed tags and attributes; docara schema view --json shows the list.
DECLARATIVE_DEFINITION_NOT_ALLOWED, DESIGN_ARTIFACT_NOT_FOUND A description is named that is not registered. What to do: Take the id from docara list layout, view, section or block.

Composition recipes

A composition recipe (composition_recipe in the page metadata) assembles a page from ready parts.

Code Cause and what to do
COMPOSITION_RECIPE_PAGE_CONTENT_CONFLICT A page with a recipe has its own text. What to do: Move the visible text into the recipe sources, and keep only the settings block between --- in the page file.
COMPOSITION_RECIPE_PLAN_PARITY_FAILED, COMPOSITION_RECIPE_DOCUMENT_INVALID The recipe changed the page plan that it was only meant to repeat, or the page description is incomplete. What to do: Rebuild the whole site; if the error repeats, report it.
COMPOSITION_RECIPE_LOCK_FAILED, COMPOSITION_RECIPE_ACTIVATION_CONFLICT Another build is assembling the recipe at the same time. What to do: Wait for it to finish and try again.
COMPOSITION_RECIPE_SNAPSHOT_MISSING, COMPOSITION_RECIPE_SNAPSHOT_UNKNOWN, COMPOSITION_RECIPE_SNAPSHOT_INTEGRITY_FAILED, COMPOSITION_RECIPE_SNAPSHOT_COLLISION, COMPOSITION_RECIPE_HEAD_INVALID, COMPOSITION_RECIPE_HEAD_COLLISION, COMPOSITION_RECIPE_DIGEST_INVALID, COMPOSITION_RECIPE_PAGE_KEY_INVALID, COMPOSITION_RECIPE_RESULT_INVALID, COMPOSITION_RECIPE_ACTIVATION_FAILED, COMPOSITION_RECIPE_ACTIVATION_REVISION_INVALID The saved recipe result is damaged, was changed by hand or could not be written. What to do: Delete the .docara/composition-recipe/ folder in the project root and run a full build.

See also