{"record":{"id":"b1a7768c00514595","repo":"vectordotdev/vector","slug":"valid-metadata-key","errorCode":null,"errorMessage":"valid metadata key","messagePattern":"valid metadata key","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/transforms/remap.rs","lineNumber":364,"sourceCode":"                        // currently only event paths are supported\n                        new_type_def = new_type_def.with_meaning(path, &id);\n                    }\n                    new_type_def\n                })\n                .unwrap_or_else(|_| {\n                    Definition::new_with_default_metadata(\n                        // The program failed to compile, so it can \"never\" return a value\n                        Kind::never(),\n                        input_definition.log_namespaces().clone(),\n                    )\n                });\n\n            // When a message is dropped and re-routed, we keep the original event, but also annotate\n            // it with additional metadata.\n            let dropped_definition = Definition::combine_log_namespaces(\n                input_definition.log_namespaces(),\n                input_definition.clone().with_event_field(\n                    log_schema().metadata_key().expect(\"valid metadata key\"),\n                    Kind::object(BTreeMap::from([\n                        (\"reason\".into(), Kind::bytes()),\n                        (\"message\".into(), Kind::bytes()),\n                        (\"component_id\".into(), Kind::bytes()),\n                        (\"component_type\".into(), Kind::bytes()),\n                        (\"component_kind\".into(), Kind::bytes()),\n                    ])),\n                    Some(\"metadata\"),\n                ),\n                input_definition\n                    .clone()\n                    .with_metadata_field(&owned_value_path!(\"reason\"), Kind::bytes(), None)\n                    .with_metadata_field(&owned_value_path!(\"message\"), Kind::bytes(), None)\n                    .with_metadata_field(&owned_value_path!(\"component_id\"), Kind::bytes(), None)\n                    .with_metadata_field(&owned_value_path!(\"component_type\"), Kind::bytes(), None)\n                    .with_metadata_field(&owned_value_path!(\"component_kind\"), Kind::bytes(), None),\n            );\n","sourceCodeStart":346,"sourceCodeEnd":382,"githubUrl":"https://github.com/vectordotdev/vector/blob/99894c8d8885659cc16efc39bd71f9fb3b59e296/src/transforms/remap.rs#L346-L382","documentation":"`log_schema().metadata_key()` returns an Option; when `reroute_dropped` is enabled, remap annotates dropped events under the global metadata key, and the schema for that annotation is built with `expect(\"valid metadata key\")` at src/transforms/remap.rs:364 for the Legacy namespace. A global `log_schema` whose `metadata_key` is unset or unparseable makes this panic while constructing the transform's type definition.","triggerScenarios":"A remap transform configured with `reroute_dropped = true` running under a global `log_schema:` block that lacks a valid `metadata_key` (missing, empty, or invalid path expression).","commonSituations":"Custom log_schema blocks that override only some keys and blank or typo `metadata_key`; configs migrated between Vector versions where the metadata key semantics changed.","solutions":["Set a valid `log_schema.metadata_key` (default `metadata`) or remove the partial override","Validate the full config with `vector validate` before deploying","If embedding: propagate a configuration error instead of expect when metadata_key is absent"],"exampleFix":"# before\nlog_schema:\n  message_key: message\n  # metadata_key missing or blank, with reroute_dropped = true in remap\n# after\nlog_schema:\n  message_key: message\n  metadata_key: metadata","handlingStrategy":"validation","validationCode":"# shell: reroute_dropped remaps need a valid metadata_key\nvector validate /etc/vector/vector.yaml --no-environment\ngrep -A6 '^log_schema:' /etc/vector/vector.yaml | grep metadata_key","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set metadata_key explicitly whenever log_schema is overridden and reroute_dropped is used","Validate configs with `vector validate` before deploying reroute_dropped pipelines","Prefer the default `metadata` key unless something else consumes it"],"tags":["log-schema","remap","metadata","configuration","panic"],"backgroundTag":"invalid-log-schema-key","analyzedSha":"99894c8d8885659cc16efc39bd71f9fb3b59e296","analyzedAt":"2026-08-20T07:02:18.786Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}