{"record":{"id":"4b42d1c9d6cb3180","repo":"multica-ai/multica","slug":"github-repo-requires-url-or-pass-a-json-payload","errorCode":null,"errorMessage":"github_repo requires --url (or pass a JSON payload via --ref)","messagePattern":"github_repo requires --url \\(or pass a JSON payload via --ref\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/cmd/multica/cmd_project.go","lineNumber":597,"sourceCode":"\n\tbody := map[string]any{\"resource_type\": resourceType}\n\n\t// --ref takes precedence when it is JSON: any new resource type works\n\t// through that path without a CLI change. For github_repo only, a non-JSON\n\t// --ref is a checkout ref shortcut and merges with --url.\n\tif ref, ok, err := buildResourceRefFromRefFlag(cmd, resourceType, nil); err != nil {\n\t\treturn err\n\t} else if ok {\n\t\tbody[\"resource_ref\"] = ref\n\t} else {\n\t\tswitch resourceType {\n\t\tcase \"github_repo\":\n\t\t\tref, has, err := buildResourceRefFromFlags(cmd, resourceType, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !has {\n\t\t\t\treturn fmt.Errorf(\"github_repo requires --url (or pass a JSON payload via --ref)\")\n\t\t\t}\n\t\t\tbody[\"resource_ref\"] = ref\n\t\tcase \"local_directory\":\n\t\t\tpathVal, _ := cmd.Flags().GetString(\"local-path\")\n\t\t\tpathVal = strings.TrimSpace(pathVal)\n\t\t\tdaemonVal, _ := cmd.Flags().GetString(\"daemon-id\")\n\t\t\tdaemonVal = strings.TrimSpace(daemonVal)\n\t\t\tif pathVal == \"\" || daemonVal == \"\" {\n\t\t\t\treturn fmt.Errorf(\"local_directory requires --local-path and --daemon-id (or pass a JSON payload via --ref)\")\n\t\t\t}\n\t\t\tref := map[string]any{\"local_path\": pathVal, \"daemon_id\": daemonVal}\n\t\t\tif refLabel, _ := cmd.Flags().GetString(\"ref-label\"); strings.TrimSpace(refLabel) != \"\" {\n\t\t\t\tref[\"label\"] = strings.TrimSpace(refLabel)\n\t\t\t}\n\t\t\tif mode, _ := cmd.Flags().GetString(\"execution-mode\"); strings.TrimSpace(mode) != \"\" {\n\t\t\t\tref[\"execution_mode\"] = strings.TrimSpace(mode)\n\t\t\t}\n\t\t\tbody[\"resource_ref\"] = ref","sourceCodeStart":579,"sourceCodeEnd":615,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_project.go#L579-L615","documentation":"Error \"github_repo requires --url (or pass a JSON payload via --ref)\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/cmd/multica/cmd_project.go:597 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass --url for a github_repo resource, or a JSON payload via --ref."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}