t8y2/dbx · error

unknown method: %s

Error message

unknown method: %s

What it means

The JSON-RPC style dispatch table in the vastbase-go driver agent received a method name that has no matching case in its switch statement (main.go:481). The driver only accepts a fixed set of method names (connect, execute_query, get_type_details, list_indexes, etc.); anything else falls through to the default branch. This is a protocol-level guard so unknown or misspelled requests fail fast instead of silently returning nothing.

Source

Thrown at agents/drivers/vastbase-go/main.go:481

		result, err := s.executeQueryPage(opts, intParam(params, "pageSize"))
		return result, false, err
	case "fetch_query_page", "fetch_table_read_page":
		result, err := s.fetchQueryPage(stringParam(params, "sessionId"), intParam(params, "pageSize"))
		return result, false, err
	case "close_query_session", "close_table_read_session":
		return s.closeQuerySession(stringParam(params, "sessionId")), false, nil
	case "execute_transaction":
		result, err := s.executeTransaction(params)
		return result, false, err
	case "execute_batch":
		result, err := s.executeBatch(params)
		return result, false, err
	case "disconnect":
		return map[string]bool{"ok": true}, false, s.disconnect()
	case "shutdown":
		return map[string]bool{"ok": true}, true, s.disconnect()
	default:
		return nil, false, fmt.Errorf("unknown method: %s", method)
	}
}

func (s *server) connect(cp connectParams) error {
	_ = s.disconnect()
	db, err := openAndPingDB(cp, defaultConnectTimeout, s.openDatabase)
	if err != nil {
		return err
	}
	s.db = db
	s.params = cp
	s.mode = detectAgentMode(db, cp.MySQLCompatMode)
	s.usePgDefaultExpression = false
	s.catalogIdentityUnsupported = false
	s.infoColumnTypeUnsupported = false
	s.infoUdtNameUnsupported = false
	s.constraintDefinitionUnsupported = false
	s.constraintValidatedUnsupported = false

View on GitHub (pinned to c0390bff16)

Solutions

  1. Check the method name for spelling and exact casing; all methods are snake_case (e.g. 'execute_query', 'get_type_details').
  2. Compare client and driver versions and upgrade the vastbase-go driver if the client is newer and expects a method this build does not implement.
  3. List the supported methods by consulting the switch dispatch in main.go (the case labels) and use one of those names.
  4. If you control the code, add a new case branch to the dispatch switch implementing the missing method.

Example fix

// before
{"method": "executeQuery", "params": {"sql": "SELECT 1"}}
// after
{"method": "execute_query", "params": {"sql": "SELECT 1"}}
Defensive patterns

Strategy: validation

When it happens

Trigger: Sending a request over the agent protocol whose 'method' field is misspelled, uses wrong casing, or is a method implemented only in another database driver (e.g. a MySQL- or Postgres-specific method name) rather than in vastbase-go.

Common situations: Client and driver version mismatch (newer client calling a method added after this driver version); hand-crafted test payloads; copying method names from another driver's docs; typos like 'executeQuery' instead of 'execute_query'.

Related errors


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