{"record":{"id":"82e1d093812a52a1","repo":"vectordotdev/vector","slug":"errors-ignored","errorCode":null,"errorMessage":"errors ignored","messagePattern":"errors ignored","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/config/graph.rs","lineNumber":85,"sourceCode":"    pub fn new(\n        sources: &IndexMap<ComponentKey, SourceOuter>,\n        transforms: &IndexMap<ComponentKey, TransformOuter<String>>,\n        sinks: &IndexMap<ComponentKey, SinkOuter<String>>,\n        schema: schema::Options,\n        wildcard_matching: WildcardMatching,\n    ) -> Result<Self, Vec<String>> {\n        Self::new_inner(sources, transforms, sinks, false, schema, wildcard_matching)\n    }\n\n    pub fn new_unchecked(\n        sources: &IndexMap<ComponentKey, SourceOuter>,\n        transforms: &IndexMap<ComponentKey, TransformOuter<String>>,\n        sinks: &IndexMap<ComponentKey, SinkOuter<String>>,\n        schema: schema::Options,\n        wildcard_matching: WildcardMatching,\n    ) -> Self {\n        Self::new_inner(sources, transforms, sinks, true, schema, wildcard_matching)\n            .expect(\"errors ignored\")\n    }\n\n    fn new_inner(\n        sources: &IndexMap<ComponentKey, SourceOuter>,\n        transforms: &IndexMap<ComponentKey, TransformOuter<String>>,\n        sinks: &IndexMap<ComponentKey, SinkOuter<String>>,\n        ignore_errors: bool,\n        schema: schema::Options,\n        wildcard_matching: WildcardMatching,\n    ) -> Result<Self, Vec<String>> {\n        let mut graph = Graph::default();\n        let mut errors = Vec::new();\n\n        // First, insert all of the different node types\n        for (id, config) in sources.iter() {\n            graph.nodes.insert(\n                id.clone(),\n                Node::Source {","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/vectordotdev/vector/blob/3708c39b12a93212ed8b8d7510b4cc7769cb5864/src/config/graph.rs#L67-L103","documentation":"This panic comes from Graph::new_unchecked in Vector's topology builder. It builds the component graph (sources/transforms/sinks) with ignore_errors=true, assuming wiring problems were already validated away; if graph construction still returns errors, expect(\"errors ignored\") aborts the process. The only production caller is the `vector test` harness (src/config/unit_test/mod.rs:389,409,450), which builds unchecked graphs after substituting test-harness sources and sinks.","triggerScenarios":"Running `vector test` on a config whose graph cannot be built after test sinks are injected: an `outputs`/`no_outputs_from` entry referencing a component that does not exist, a transform wired to a missing input, or glob-expanded component names that break edges after test filtering rewrites the component set.","commonSituations":"A unit-test file whose outputs point at a sink or transform renamed in the main config; typos in component names; wildcard (*) outputs interacting with test component filtering; Vector version upgrades that tighten graph validation rules.","solutions":["Run `vector validate` on both the main config and the test definition to surface the wiring error before the unchecked graph build","Check every `outputs`, `inputs`, and `no_outputs_from` entry in the test definition against real component names in the topology","Remove glob-expanded names (e.g. my_transform.*) from test outputs and re-run to isolate the failing component","If validation passes but `vector test` still panics, file a Vector issue with config plus test definition: new_unchecked panicking means validation let an invalid graph through"],"exampleFix":"# before (test file references a renamed component)\n[[tests]]\nname = \"check\"\n[tests.writers]\noutputs = [\"my_sink\"]   # my_sink was renamed to http_out\n\n# after\n[[tests]]\nname = \"check\"\n[tests.writers]\noutputs = [\"http_out\"]","handlingStrategy":"validation","validationCode":"# CI gate before any `vector test` run\nvector validate /etc/vector/vector.toml\nvector validate /path/to/*.toml   # include test definitions\n# exit code != 0 lists the wiring errors the unchecked graph build would panic on","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run vector validate on configs and test definitions in CI before vector test","Keep test output names in lockstep with component names; rename in both places atomically","Avoid glob-expanded component names in test outputs unless the wildcard rules are also tested"],"tags":["rust","vector","topology","config","unit-tests","panic"],"backgroundTag":"invalid-config-value","analyzedSha":"3708c39b12a93212ed8b8d7510b4cc7769cb5864","analyzedAt":"2026-08-20T07:02:18.786Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T20:17:18.057Z"}