zeroclaw-labs/zeroclaw · error · anyhow::Error

files.getUploadURLExternal failed: {err}

Error message

files.getUploadURLExternal failed: {err}

What it means

Error "files.getUploadURLExternal failed: {err}" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at crates/zeroclaw-channels/src/slack.rs:1153

            .unwrap_or_else(|| "attachment.bin".to_string());
        let length = attachment.data.len().to_string();
        let upload_resp = self
            .http_client()
            .post(self.slack_api_url("files.getUploadURLExternal"))
            .bearer_auth(&self.bot_token)
            .form(&[
                ("filename", file_name.as_str()),
                ("length", length.as_str()),
            ])
            .send()
            .await?;
        let upload_body: serde_json::Value = upload_resp.json().await?;
        if upload_body.get("ok") != Some(&serde_json::Value::Bool(true)) {
            let err = upload_body
                .get("error")
                .and_then(|value| value.as_str())
                .unwrap_or("unknown");
            anyhow::bail!("files.getUploadURLExternal failed: {err}");
        }
        let upload_url = upload_body
            .get("upload_url")
            .and_then(|value| value.as_str())
            .context("files.getUploadURLExternal response missing upload_url")?;
        let file_id = upload_body
            .get("file_id")
            .and_then(|value| value.as_str())
            .context("files.getUploadURLExternal response missing file_id")?;

        let upload_status = self
            .http_client()
            .post(upload_url)
            .body(attachment.data.clone())
            .send()
            .await?;
        let status = upload_status.status();
        if !status.is_success() {

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Verify the Slack bot token has files:write scope and the workspace allows uploads; retry after fixing permissions.

When it happens

Trigger: Thrown at crates/zeroclaw-channels/src/slack.rs:1153 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/cca29992a72bdc16. Report an issue: GitHub.