Skip to content

Error in BUILD but no clue about the failing file #125

@eandresr

Description

@eandresr

I'm facing some problems and one of those is:

  • When trying to build a site, if a .pages file has a syntax error or just text rather than yaml, it fails with somoething like:

INFO - Cleaning site directory INFO - Building documentation to directory: /tmp/mktest/site WARNING - Excluding 'README.md' from the site because it conflicts with 'index.md'. Traceback (most recent call last): File "/opt/hostedtoolcache/Python/3.13.2/x64/bin/mkdocs", line 8, in <module> sys.exit(cli()) ~~~^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1161, in __call__ return self.main(*args, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 169[7](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:8), in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 7[8](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:9)8, in invoke return __callback(*args, **kwargs) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/__main__.py", line 288, in build_command build.build(cfg, dirty=not clean) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/commands/build.py", line 2[9](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:10)9, in build nav = config.plugins.on_nav(nav, config=config, files=files) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.[13](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:14)/site-packages/mkdocs/plugins.py", line 596, in on_nav return self.run_event('nav', nav, config=config, files=files) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/plugins.py", line 566, in run_event result = method(item, **kwargs) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/plugin.py", line 81, in on_nav return AwesomeNavigation( ~~~~~~~~~~~~~~~~~^ nav.items, ^^^^^^^^^^ ...<2 lines>... explicit_sections, ^^^^^^^^^^^^^^^^^^ ).to_mkdocs() ^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 58, in __init__ self.meta = NavigationMeta(items, options, files, explicit_sections) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 277, in __init__ self.root: Meta = self._gather_metadata(items) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) [Previous line repeated 1 more time] File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 297, in _gather_metadata return Meta.try_load_from_files(rel_config_path, self.files) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/meta.py", line [16](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:17)3, in try_load_from_files meta = Meta.load_from(file.abs_src_path) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/meta.py", line [17](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:18)3, in load_from title = contents.get(Meta.TITLE_ATTRIBUTE) ^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'get'

The last error is clear, it tried to read a file, expeccting a key->value format like yaml, and found a string. But it would be neccesary to have in the error some clarification. This could be done with some try-->exception...

After testing the same thing in awesome-nav plugin, it is the same message when I have a problemativ .nav.yml file:
INFO - Cleaning site directory INFO - Building documentation to directory: C:\Users\blablabla\testdocs\build Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\__main__.py", line 370, in <module> cli() ~~~^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1157, in __call__ return self.main(*args, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 783, in invoke return __callback(*args, **kwargs) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\__main__.py", line 288, in build_command build.build(cfg, dirty=not clean) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\commands\build.py", line 299, in build nav = config.plugins.on_nav(nav, config=config, files=files) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\plugins.py", line 596, in on_nav return self.run_event('nav', nav, config=config, files=files) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\plugins.py", line 566, in run_event result = method(item, **kwargs) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\plugin.py", line 32, in on_nav config.nav = RootNavDirectory(context.root).resolve(context).to_mkdocs_config() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 78, in resolve return super()._create_section(context, section_type=RootSection) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 63, in _create_section resolved_children: list[NavPage | NavSection | NavLink] = resolve_in_priority_order(parsed_children, context) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\resolve.py", line 19, in resolve_in_priority_order to_resolve.resolve(context) ~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\resolve.py", line 61, in resolve self._result[self._result_index] = self._item.resolve(context) ~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\pattern.py", line 28, in resolve matches = self._find_matches(context) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\pattern.py", line 59, in _find_matches directory_item = NavDirectory(file_object, parent_config=self.config) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 19, in __init__ self.config = self._load_config(parent_config) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 31, in _load_config return NavConfig.from_file(config_file, parent=parent_config) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\config.py", line 113, in from_file ConfigModel.from_yaml(file.content_string), ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\config.py", line 221, in from_yaml return ConfigModel(**data) TypeError: mkdocs_awesome_nav.nav.config.ConfigModel() argument after ** must be a mapping, not str

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions