{"record":{"id":"826a1abf4f6b453d","repo":"risingwavelabs/risingwave","slug":"transparent-internal-passthrough-anyhow-error","errorCode":null,"errorMessage":"[transparent] (Internal: passthrough anyhow::Error)","messagePattern":"\\[transparent\\] \\(Internal: passthrough anyhow::Error\\)","errorType":"exception","errorClass":"SinkError::Internal","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/mod.rs","lineNumber":1190,"sourceCode":"        anyhow::Error,\n    ),\n    #[error(\"ElasticSearch/OpenSearch error: {0}\")]\n    ElasticSearchOpenSearch(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"Starrocks error: {0}\")]\n    Starrocks(String),\n    #[error(\"File error: {0}\")]\n    File(String),\n    #[error(\"Pulsar error: {0}\")]\n    Pulsar(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(transparent)]\n    Internal(\n        #[from]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"BigQuery error: {0}\")]\n    BigQuery(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"DynamoDB error: {0}\")]\n    DynamoDb(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"SQL Server error: {0}\")]","sourceCodeStart":1172,"sourceCodeEnd":1208,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/mod.rs#L1172-L1208","documentation":"A transparent SinkError variant with #[from] anyhow::Error that serves as the catch-all for sink errors without a dedicated variant. Any `?` on an anyhow::Error inside sink code converts it into SinkError::Internal, passing the message through unchanged.","triggerScenarios":"Any sink connector path returning anyhow::Error via `?` (or `#[from]` conversion) where no specific variant applies: decoding responses, runtime conversion bugs, generic I/O, internal invariant violations.","commonSituations":"Generic unexpected failures inside connector code, misconfigured options caught late, or genuine bugs — the message text is whatever the inner anyhow error carried.","solutions":["Read the inner message — it is the original anyhow error, unmodified.","Fix the root cause indicated by the message (config, network, or data).","If it looks like a bug (invariant violation), gather logs and file an issue against the connector."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// Internal wraps any anyhow error transparently: match err { SinkError::Internal(e) => log::error!(\"sink internal: {e:#}\"), _ => ... } and escalate unknown cases to the maintainers","preventionTips":["Read the transparent message — it is the raw underlying error","If reproducible from normal config, file a bug; it may indicate a connector bug","Keep connector versions and RisingWave in sync to avoid mismatch bugs"],"tags":["sink","internal","anyhow","passthrough"],"backgroundTag":"internal-invariant-violation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}