t8y2/dbx · error

unknown method: {method}

Error message

unknown method: {method}

What it means

Bailed by the TDengine runtime dispatcher when an incoming method name is not one of the known lifecycle methods (connect/disconnect/test_connection/shutdown...) and also fails is_driver_method. It is the catch-all unknown-method guard: the runtime cannot route the request to any session or driver handler, so it fails with the method name embedded.

Source

Thrown at agents/drivers/tdengine/src/runtime.rs:214

                let database_info = TdengineDriver::test_connection(decode::<ConnectParams>(&params)?).await?;
                Ok(json!({"ok": true, "databaseInfo": database_info}))
            }
            "connect" => {
                self.close_session(LEGACY_SESSION_ID).await?;
                self.open_session(LEGACY_SESSION_ID, decode::<ConnectParams>(&params)?).await?;
                Ok(json!({"ok": true}))
            }
            "disconnect" => {
                self.close_session(LEGACY_SESSION_ID).await?;
                Ok(json!({"ok": true}))
            }
            "shutdown" => {
                self.close_all_sessions().await;
                Ok(json!({"ok": true}))
            }
            _ => {
                if !is_driver_method(method) {
                    bail!("unknown method: {method}");
                }
                let id = session_id(&params).unwrap_or_else(|| LEGACY_SESSION_ID.to_string());
                let session = self.session(&id).await?;
                let mut driver = session.driver.lock().await;
                let (token, _operation) = session.begin_operation();
                dispatch_driver(&mut driver, method, &params, &token).await
            }
        }
    }

    async fn open_session(&self, id: &str, params: ConnectParams) -> Result<()> {
        if id.trim().is_empty() {
            bail!("agentSessionId is required");
        }
        {
            let sessions = self.sessions.read().await;
            if sessions.contains_key(id) {
                bail!("agent session already exists: {id}");

View on GitHub (pinned to c0390bff16)

Solutions

  1. Check the method name for typos and casing
  2. Verify the client/agent protocol versions are compatible; a newer client may call methods this runtime does not implement
  3. Upgrade the TDengine agent to a version supporting the method
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at agents/drivers/tdengine/src/runtime.rs:214 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/9b51203100cb4ccc. Report an issue: GitHub.