{"record":{"id":"0b96500060c99a82","repo":"OpenBMB/ChatDev","slug":"1-0b9650","errorCode":null,"errorMessage":"1","messagePattern":"1","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"error","filePath":"check/check_yaml.py","lineNumber":41,"sourceCode":"        # Users may configure environment variables at runtime\n        DesignConfig.from_dict(data)\n        return []\n    except ConfigError as exc:\n        return [str(exc)]\n\n\ndef main() -> None:\n    parser = argparse.ArgumentParser(description=\"Validate workflow YAML structure against the typed config loader\")\n    parser.add_argument(\"path\", help=\"Path to the workflow YAML file\")\n    args = parser.parse_args()\n\n    data = read_yaml(args.path)\n    errors = validate_design(data)\n    if errors:\n        print(\"Design validation failed:\")\n        for err in errors:\n            print(f\"- {err}\")\n        raise SystemExit(1)\n    print(\"Design validation successful.\")\n\n\nif __name__ == \"__main__\":\n    main()\n","sourceCodeStart":23,"sourceCodeEnd":47,"githubUrl":"https://github.com/OpenBMB/ChatDev/blob/4fb2db0ea90375ce1059f44fe03ffbd191a7a169/check/check_yaml.py#L23-L47","documentation":"ResourceNotFoundError raised by GET workflow-args when the validated filename does not exist as a file in YAML_DIR. Typically surfaces as 404 to the API client.","triggerScenarios":"GET /api/workflows/{name}/args where the YAML file is absent or is a directory; using a name that was deleted or never uploaded.","commonSituations":"Stale workflow references after cleanup; case-sensitivity mismatches on Linux; wrong environment's directory; missing .yaml extension causing a different name lookup.","solutions":["Confirm the file exists via the list-workflows endpoint.","Include the correct .yaml/.yml extension and exact casing.","Re-upload the workflow if it should exist."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const files = await listWorkflows();\nif (!files.includes(filename)) throw new NotFound(filename);","typeGuard":"const workflowExists = (files: string[], name: string) => files.includes(name);","tryCatchPattern":"catch (e) { if (e.status === 404) refreshWorkflowList(); }","preventionTips":["Always include .yaml extension","Match casing exactly on Linux"],"tags":["workflow","not-found","yaml","fastapi"],"backgroundTag":"resource-not-found","analyzedSha":"4fb2db0ea90375ce1059f44fe03ffbd191a7a169","analyzedAt":"2026-08-27T14:35:29.622Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}