googleapis/mcp-toolbox · error

row iteration error: %w

Error message

row iteration error: %w

What it means

rows.Err() reported a failure after the row loop finished in RunSQL — the result stream errored during iteration (connection drop, query cancellation, or driver fault) even though earlier rows may have been read.

Source

Thrown at internal/sources/snowflake/snowflake.go:137

		values := make([]interface{}, len(cols))
		valuePtrs := make([]interface{}, len(cols))
		for i := range values {
			valuePtrs[i] = &values[i]
		}

		if err := rows.Scan(valuePtrs...); err != nil {
			return nil, fmt.Errorf("unable to scan row: %w", err)
		}

		vMap := make(map[string]any)
		for i, col := range cols {
			vMap[col] = values[i]
		}
		out = append(out, vMap)
	}

	if err := rows.Err(); err != nil {
		return nil, fmt.Errorf("row iteration error: %w", err)
	}

	return out, nil
}

func initSnowflakeConnection(ctx context.Context, tracer trace.Tracer, name, account, user, password, database, schema, warehouse, role string) (*sqlx.DB, error) {
	//nolint:all // Reassigned ctx
	ctx, span := sources.InitConnectionSpan(ctx, tracer, SourceType, name)
	defer span.End()

	// Set defaults for optional parameters
	if warehouse == "" {
		warehouse = "COMPUTE_WH"
	}
	if role == "" {
		role = "ACCOUNTADMIN"
	}

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Inspect the wrapped error for the underlying cause
  2. Check for query timeouts and connection stability
  3. Retry the statement on transient network errors
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/sources/snowflake/snowflake.go:137 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05). Data as JSON: /api/errors/d9e980da3f12ffea. Report an issue: GitHub.