databendlabs/databend · error

sync crash me panic

Error message

sync crash me panic

What it means

After building the Azure StorageParams, parse_azure_params validates the remaining connection options via l.connection.check(). Any unrecognized or invalid option (e.g. a typo'd key, an option unsupported for azblob) is surfaced verbatim as an InvalidInput binder error.

Solutions

  1. Read the wrapped {err} message — it names the exact offending option — and remove or correct that key.
  2. Ensure every option is valid for azblob (e.g. account_name, account_key, endpoint_url) and not an S3-specific key.
  3. Fix typos in CONNECTION_OPTIONS keys.
  4. Check release notes for renamed connection options if the stage definition used to work.

Example fix

// before
CONNECTION_OPTIONS = (ENDPOINT_URL = '...', AWS_ACCESS_KEY_ID = 'k')
// after
CONNECTION_OPTIONS = (ENDPOINT_URL = '...', ACCOUNT_NAME = 'acc', ACCOUNT_KEY = 'k')
Defensive patterns

Strategy: validation

Validate before calling

const AZBLOB_OPTS: &[&str] = &["endpoint_url","account_name","account_key","root","master_key","connection_string"];
for k in options.keys() { if !AZBLOB_OPTS.contains(&k.to_lowercase().as_str()) { return Err(format!("unknown azblob option: {}", k)); } }

Try / catch

match exec(ddl).await { Err(e) if e.to_string().contains("invalid connection option") || e.to_string().contains("unknown") => report_bad_option(e), Err(e) => Err(e) }

Prevention

When it happens

Trigger: Passing any connection option in CONNECTION_OPTIONS that the azblob connection config does not recognize — e.g. `AWS_KEY_ID` on an azblob location, a misspelled `ACCOUNT_NAME`, or an option valid only for S3.

Common situations: Copy-pasting S3 connection options into an Azure stage definition; typos in Azure option names; using deprecated/renamed option keys after a version upgrade.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of databendlabs/databend@288d84d76e (2026-09-11). Data as JSON: /api/errors/aea27f478a4e9ac6. Report an issue: GitHub.

Appendix: source

Thrown at src/query/service/src/table_functions/sync_crash_me.rs:158

    message: Option<String>,
}

impl SyncCrashMeSource {
    pub fn create(
        scan: Arc<Progress>,
        output: Arc<OutputPort>,
        message: Option<String>,
    ) -> Result<ProcessorPtr> {
        SyncSourcer::create(scan, output, SyncCrashMeSource { message })
    }
}

impl SyncSource for SyncCrashMeSource {
    const NAME: &'static str = "sync_crash_me";

    fn generate(&mut self) -> Result<Option<DataBlock>> {
        match &self.message {
            None => panic!("sync crash me panic"),
            Some(message) => panic!("{}", message),
        }
    }
}

impl TableFunction for SyncCrashMeTable {
    fn function_name(&self) -> &str {
        self.name()
    }

    fn as_table<'a>(self: Arc<Self>) -> Arc<dyn Table + 'a>
    where Self: 'a {
        self
    }
}

View on GitHub (pinned to 288d84d76e)