{"record":{"id":"e113a3a31b503f7c","repo":"risingwavelabs/risingwave","slug":"streaming-vnode-mapping-not-found-for-fragment-0","errorCode":null,"errorMessage":"Streaming vnode mapping not found for fragment {0}","messagePattern":"Streaming vnode mapping not found for fragment (.+?)","errorType":"error_code","errorClass":"BatchError","httpStatus":null,"severity":"error","filePath":"src/batch/src/error.rs","lineNumber":140,"sourceCode":"    // Make the ref-counted type to be a variant for easier code structuring.\n    // TODO(error-handling): replace with `thiserror_ext::Arc`\n    #[error(transparent)]\n    Shared(\n        #[from]\n        #[backtrace]\n        Arc<Self>,\n    ),\n\n    #[error(\"Empty workers found\")]\n    EmptyWorkerNodes,\n\n    #[error(\"Serving vnode mapping not found for fragment {0}\")]\n    ServingVnodeMappingNotFound(FragmentId),\n\n    #[error(\"Streaming vnode mapping has not been initialized\")]\n    StreamingVnodeMappingNotInitialized,\n\n    #[error(\"Streaming vnode mapping not found for fragment {0}\")]\n    StreamingVnodeMappingNotFound(FragmentId),\n\n    #[error(\"Not enough memory to run this query, batch memory limit is {0} bytes\")]\n    OutOfMemory(u64),\n\n    #[error(\"Failed to spill out to disk\")]\n    Spill(\n        #[from]\n        #[backtrace]\n        opendal::Error,\n    ),\n\n    #[error(\"Failed to execute time travel query\")]\n    TimeTravel(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/batch/src/error.rs#L122-L158","documentation":"A generic lookup guard: the batch scheduler queried the streaming vnode mapping table for a specific FragmentId and no entry existed. Unlike StreamingVnodeMappingNotInitialized (table empty entirely), this fires when the table exists but the particular fragment's mapping is absent — the fragment was never registered, was dropped/hidden mid-flight (e.g., its streaming job was cancelled or being rescheduled), or the scheduler holds a stale fragment id.","triggerScenarios":"Thrown at src/batch/src/error.rs:140 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the query; if the fragment's streaming job was being created or rescheduled the mapping may appear shortly after","Confirm the streaming job that owns the fragment is running and was not cancelled or dropped","Refresh the fragment/metadata view from the meta service in case the scheduler cached stale fragment ids","If reproducible, check for races between barrier completion (mapping publication) and batch scheduling and report the fragment id"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}