{"record":{"id":"74eda9fff16a163c","repo":"block/buzz","slug":"invalid-channel-uuid-e","errorCode":null,"errorMessage":"invalid --channel UUID: {e}","messagePattern":"invalid --channel UUID: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/buzz-admin/src/main.rs","lineNumber":514,"sourceCode":"        }\n        None => {\n            let k = Keys::generate();\n            eprintln!(\n                \"Warning: no relay key provided — using ephemeral key {}\",\n                k.public_key().to_hex()\n            );\n            eprintln!(\"Events signed with this key won't be verifiable after this run.\");\n            eprintln!(\"Pass --relay-key or set BUZZ_RELAY_PRIVATE_KEY for production use.\");\n            k\n        }\n    };\n\n    let tenant = resolve_admin_tenant(&db).await?;\n    let target_channel = channel_arg\n        .as_deref()\n        .map(uuid::Uuid::parse_str)\n        .transpose()\n        .map_err(|e| anyhow::anyhow!(\"invalid --channel UUID: {e}\"))?;\n    let channels = if let Some(target) = target_channel {\n        vec![db\n            .get_channel(tenant.community(), target)\n            .await\n            .map_err(|_| {\n                anyhow::anyhow!(\"channel {target} not found in community {}\", tenant.host())\n            })?]\n    } else {\n        db.list_channels(tenant.community(), None).await?\n    };\n    if channels.is_empty() {\n        println!(\"No channels in database.\");\n        return Ok(());\n    }\n\n    let mut reconciled = 0u32;\n    let mut skipped = 0u32;\n","sourceCodeStart":496,"sourceCodeEnd":532,"githubUrl":"https://github.com/block/buzz/blob/f956e6fe06a76e50cbd8fba1a162482e752e7f1a/crates/buzz-admin/src/main.rs#L496-L532","documentation":"reconcile_channels() passes the --channel argument to uuid::Uuid::parse_str and it failed. The channel selector must be a canonical UUID (hyphenated 36-char form, e.g. 6f9c0d34-…, or the unhyphenated 32-hex form). Passing a channel name ('general'), a Nostr event id (64-hex), a slug, or a mistyped UUID triggers this; the uuid crate's parse error is appended as {e}.","triggerScenarios":"`buzz-admin reconcile-channels --channel general` (name instead of UUID), `--channel <64-hex nostr event id>`, a UUID with an extra character, or one copied with smart-quotes/whitespace from a chat message.","commonSituations":"Operators assume the CLI takes channel names because the UI shows names; copying the wrong identifier out of a deep link or event JSON; locale-mangled dashes (en-dash instead of hyphen) from formatted docs.","solutions":["Get the channel's UUID first: `buzz-admin` channel listing / `buzz channels list` output, or `SELECT id, name FROM channels;` in the community's database.","Pass the hyphenated UUID exactly: `--channel 6f9c0d34-1b2e-4c7a-9d3f-2a1b3c4d5e6f` — verify it is 36 chars with 4 hyphens.","If your id has no hyphens (32 hex chars), that form is accepted too; anything else (names, event ids) is not."],"exampleFix":"# before\nbuzz-admin reconcile-channels --channel general\n# error: invalid --channel UUID: ...\n\n# after\nbuzz-admin reconcile-channels --channel 6f9c0d34-1b2e-4c7a-9d3f-2a1b3c4d5e6f","handlingStrategy":"validation","validationCode":"// JS/TS wrapper before shelling out\nconst UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\nif (!UUID_RE.test(channelArg)) throw new Error(`--channel must be a UUID, got: ${channelArg}`);","typeGuard":"function isChannelUuid(v: string): boolean {\n  return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v);\n}","tryCatchPattern":null,"preventionTips":["Always resolve channel names to UUIDs via `buzz channels list` instead of trusting user-supplied names.","Copy UUIDs with hyphens intact; 36 chars / 4 hyphens is the quick eyeball check."],"tags":["buzz-admin","uuid","cli-arguments","validation"],"backgroundTag":"invalid-uuid-format","analyzedSha":"f956e6fe06a76e50cbd8fba1a162482e752e7f1a","analyzedAt":"2026-08-16T22:11:40.750Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}