{"record":{"id":"3c19faeb3b78b55f","repo":"gastownhall/beads","slug":"ado-org-not-configured-set-via-bd-config-set-ado","errorCode":null,"errorMessage":"ado.org not configured: set via 'bd config set ado.org <org>' or AZURE_DEVOPS_ORG env var","messagePattern":"ado\\.org not configured: set via 'bd config set ado\\.org <org>' or AZURE_DEVOPS_ORG env var","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/ado.go","lineNumber":246,"sourceCode":"\t\treturn \"AZURE_DEVOPS_ORG\"\n\tcase \"ado.project\":\n\t\treturn \"AZURE_DEVOPS_PROJECT\"\n\tcase \"ado.projects\":\n\t\treturn \"AZURE_DEVOPS_PROJECTS\"\n\tcase \"ado.url\":\n\t\treturn \"AZURE_DEVOPS_URL\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\n// validateADOConfig checks that required configuration is present.\nfunc validateADOConfig(cfg ADOConfig) error {\n\tif cfg.PAT == \"\" {\n\t\treturn fmt.Errorf(\"ado.pat not configured: set via 'bd config set ado.pat <token>' or AZURE_DEVOPS_PAT env var\")\n\t}\n\tif cfg.Org == \"\" && cfg.URL == \"\" {\n\t\treturn fmt.Errorf(\"ado.org not configured: set via 'bd config set ado.org <org>' or AZURE_DEVOPS_ORG env var\")\n\t}\n\tif len(cfg.Projects) == 0 {\n\t\treturn fmt.Errorf(\"no ADO project configured\\nSet via 'bd config set ado.project <project>'\\nOr:  'bd config set ado.projects \\\"proj1,proj2\\\"'\\nOr: AZURE_DEVOPS_PROJECT env var\")\n\t}\n\treturn nil\n}\n\n// maskADOToken masks a token for safe display.\n// Shows only the first 4 characters to aid identification without\n// revealing enough to reduce brute-force entropy.\nfunc maskADOToken(token string) string {\n\tif token == \"\" {\n\t\treturn \"(not set)\"\n\t}\n\tif len(token) <= 4 {\n\t\treturn \"****\"\n\t}\n\treturn token[:4] + \"****\"","sourceCodeStart":228,"sourceCodeEnd":264,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/ado.go#L228-L264","documentation":"validateADOConfig requires an Azure DevOps organization (or an explicit server URL) to build API endpoints. When both cfg.Org and cfg.URL are empty, this error points to `bd config set ado.org <org>` or the AZURE_DEVOPS_ORG environment variable.","triggerScenarios":"Any ADO command routed through validateADOConfig (status, sync, push, pull) where ado.org is unset in bd config, AZURE_DEVOPS_ORG is absent, and no explicit URL is configured.","commonSituations":"PAT configured but org skipped during setup; switching between azure-devops.com hosted orgs and on-prem servers where a URL is needed instead of an org name; CI environments lacking the org env var.","solutions":["Run `bd config set ado.org <your-org>`","Export AZURE_DEVOPS_ORG=<org> in the environment","For on-prem/self-hosted servers, set the URL instead (the check accepts cfg.URL in place of org)"],"exampleFix":"// before\nbd ado status\n// error: ado.org not configured...\n// after\nbd config set ado.org my-company && bd ado status","handlingStrategy":"validation","validationCode":"if os.Getenv(\"AZURE_DEVOPS_ORG\") == \"\" {\n    if org, _ := config.Get(\"ado.org\"); org == \"\" {\n        return errors.New(\"set ado.org or AZURE_DEVOPS_ORG before ADO commands\")\n    }\n}","typeGuard":null,"tryCatchPattern":"if err := bdAdoStatus(); err != nil && strings.Contains(err.Error(), \"ado.org not configured\") {\n    return configureOrgThenRetry()\n}","preventionTips":["Complete full ADO setup (pat, org, project) in one step","Set AZURE_DEVOPS_ORG in CI environments","Use ado.url for on-prem servers instead of org"],"tags":["azure-devops","missing-config","organization","ado"],"backgroundTag":"missing-env-var","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}