Local Debug Runs Do Not Create Tables in warehouse.db or Persist state.json
Issue
During local Connector SDK testing, state.json is not persisted and warehouse.db remains empty when the connector uses certain table or column names. The same connector works as expected when deployed.
When this occurs:
- Tables are not created in
warehouse.db. - The SDK does not persist
state.json, even if logs show attempted data writes. - The local debug run continues without reporting a fatal error.
Environment
Connector: Connector SDK
Resolution
To resolve this issue:
- Review your connector schema for table or column names that match DuckDB reserved keywords, such as
order,desc, orgroup. For the full list of reserved keywords, see the DuckDB Keywords and Identifiers documentation. - Rename conflicting table or column names. For example, rename
desctodesc_. - Re-run
fivetran debugafter updating the schema.
Cause
This issue occurs when a connector schema includes table or column names that are reserved keywords in DuckDB.
Local Connector SDK debug runs use DuckDB as the underlying warehouse for warehouse.db, and DuckDB does not allow reserved keywords to be used as unquoted identifiers. When DuckDB rejects the schema locally, tables are not created in warehouse.db, and the SDK may not persist state.json.
However, deployed connectors may use destination warehouses that handle reserved keywords differently. As a result, a schema that works after deployment can fail during local testing.