tinyhumansai/openhuman · error

Backend returned success but no data for DELETE {}

Error message

Backend returned success but no data for DELETE {}

What it means

The integrations envelope for a Composio DELETE request reported success but carried no data payload. A contract violation by the backend: the {success,data} envelope handler expects a data member for this route, and its absence means the delete's outcome cannot be confirmed from the response body.

Source

Thrown at src/openhuman/integrations/composio/client.rs:568

            let msg = envelope
                .error
                .unwrap_or_else(|| "unknown backend error".into());
            // Mirrors the integrations envelope-error sites — route through
            // the observability classifier so user-state envelope failures
            // (composio "Toolkit X is not enabled" / "Trigger type …
            // not found" / "Missing required fields: …" — OPENHUMAN-TAURI-3R
            // / -3S / -34 / -97) demote to a breadcrumb instead of firing
            // a Sentry event. Genuine backend bugs still surface.
            crate::core::observability::report_error_or_expected(
                msg.as_str(),
                "composio",
                "delete",
                &[("path", path), ("failure", "envelope_error")],
            );
            anyhow::bail!("Backend error for DELETE {}: {}", url, msg);
        }
        envelope.data.ok_or_else(|| {
            anyhow::anyhow!("Backend returned success but no data for DELETE {}", url)
        })
    }
}

fn is_post_oauth_auth_readiness_error(resp: &ComposioExecuteResponse) -> bool {
    if resp.successful {
        return false;
    }
    let Some(error) = resp.error.as_deref() else {
        return false;
    };
    let normalized = error.trim().to_ascii_lowercase();
    POST_OAUTH_AUTH_ERROR_STRINGS
        .iter()
        .any(|needle| normalized.contains(needle))
}

fn required_oauth_scopes_for_toolkit(toolkit: &str) -> &'static [&'static str] {

View on GitHub (pinned to 7491200858)

Solutions

  1. Treat as deleted if the endpoint returns no body on success
  2. Otherwise report the envelope mismatch to the backend
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/openhuman/integrations/composio/client.rs:568 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/a133b9de9a9a19a3. Report an issue: GitHub.