{"record":{"id":"d418c2081e9da045","repo":"risingwavelabs/risingwave","slug":"doris-error-0","errorCode":null,"errorMessage":"Doris error: {0}","messagePattern":"Doris error: (.+?)","errorType":"exception","errorClass":"SinkError","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/mod.rs","lineNumber":1160,"sourceCode":"    #[error(\"Nats error: {0}\")]\n    Nats(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"Google Pub/Sub error: {0}\")]\n    GooglePubSub(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"Doris/Starrocks connect error: {0}\")]\n    DorisStarrocksConnect(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"Doris error: {0}\")]\n    Doris(String),\n    #[error(\"DeltaLake error: {0}\")]\n    DeltaLake(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"LanceDB error: {0}\")]\n    LanceDb(\n        #[source]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"ElasticSearch/OpenSearch error: {0}\")]\n    ElasticSearchOpenSearch(\n        #[source]\n        #[backtrace]\n        anyhow::Error,","sourceCodeStart":1142,"sourceCodeEnd":1178,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/mod.rs#L1142-L1178","documentation":"A SinkError variant carrying a plain String message for general Doris sink failures. Unlike DorisStarrocksConnect it is raised after connection succeeds, for errors reported by Doris itself or the sink connector logic (e.g. stream load rejection, schema mismatch).","triggerScenarios":"Stream load requests rejected by Doris (non-OK response), unsupported sink options, data/schema incompatibilities with the Doris table, or internal connector errors surfaced as strings.","commonSituations":"Doris table schema differs from the RisingWave schema, Doris returns 'fail' status with a message, invalid connector option values, append-only vs upsert mismatch.","solutions":["Read the wrapped message for the Doris-reported cause (often includes stream load URL and error log).","Verify the Doris target table schema matches the sink's columns and types.","Check sink WITH options against the Doris connector's supported options.","Inspect Doris FE/BE logs (especially stream load error URLs) for details."],"exampleFix":"// before\nWITH (connector='doris', table='t', nonexistent_option='x')\n// after\nWITH (connector='doris', table='t', sink_decouple=true) // only supported options","handlingStrategy":"try-catch","validationCode":"// Compare sink schema with Doris: SHOW CREATE TABLE db.t; ensure column names/types align","typeGuard":null,"tryCatchPattern":"if let SinkError::Doris(msg) = err { log::error!(\"doris sink failed: {msg}\"); /* route to DLQ or fix schema/options */ }","preventionTips":["Keep RisingWave and Doris table schemas in sync","Read Doris stream-load error URLs in the message before guessing","Pin supported connector options only"],"tags":["sink","doris","stream-load","schema"],"backgroundTag":"upstream-api-error","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}