Documentation Index
Fetch the complete documentation index at: https://docs.permutive.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
When your source data changes, Permutive can detect and apply certain types of schema updates to an existing import. This guide explains how to action those updates — including adding new columns — and how to resolve common schema-related errors.Prerequisites:
- An active Connectivity source connection
- An existing import configured against that source
- Access to Sources > Imports in the Permutive Dashboard
Supported Schema Changes
What you can change depends on your source type. Select your source below for details.- S3 & GCS
- BigQuery
- Snowflake
Support depends on the file format. We recommend Parquet where possible — it carries its schema per file, supports native typed columns, and avoids CSV parsing edge cases.
Parquet (recommended)
Supported- Adding new nullable columns (at any position)
- Adding fields to nested struct columns — for example, if
addresscontains(city, street)and a newzipfield is added, you can accept the change to import all sub-fields. Nested struct changes are all-or-nothing: you must accept all sub-fields or none.
- Widening or narrowing a column’s data type (e.g.
INT64→NUMERIC,DATE→TIMESTAMP) - Removing, renaming, or reordering columns
- Type safety — native typed columns (int, float, string, timestamp) avoid issues like integers silently becoming floats
- Better compression — typically 5–10× smaller than CSV
- No parsing edge cases — no issues with escaping, quoting, delimiters, or encoding
CSV
Supported- Adding new columns, appended to the end of the row only
- Inserting a new column in the middle of the row
- Removing, renaming, or reordering columns
- Any change to an existing column’s data type — CSV has no reliable way to enforce types
- Nested struct columns (not supported in CSV)
Permutive’s underlying infrastructure supports a maximum of 10,000 columns per table. This limit applies to all source types.
How Schema Resync Works
- You change the source schema in your data warehouse or data lake (for example, add a column to a CSV or Parquet table in S3).
- You trigger a resync from the Permutive dashboard — detection does not happen automatically on a schedule.
- Permutive re-reads the schema of every table under the connection’s prefix. The resync can take up to 30 minutes.
- If changes are detected, affected imports are flagged with a banner. You review the changes per import and choose which new columns to bring in.
Steps
Trigger a resync on the connection
- Go to Connectivity > Connections and open the affected connection (or open an affected import and use the header action), then click Resync Connection.
- Confirm in the dialog: “You are about to resync your connection to the data source. This can take up to 30 minutes to complete.”
- The button shows Resyncing… while Permutive refreshes the schema from source. You can close the page — the resync runs in the background.
Resync runs at the connection level and checks all tables under the connection’s schema prefix. You don’t need to trigger it separately for each import.
Review detected changes
Once the resync completes, the Imports page shows a banner — “Schema changes detected in N imports” — and you can use the Pending changes filter to find affected imports. Each affected row is marked with an info-circle tooltip.Open an affected import. You’ll see one of two banners depending on what was detected:
- New changes detected in your source schema (info) — Supported changes such as new columns. Click Review Changes to open the column-selection dialog.
- Unsupported changes detected in your source schema (warning) — the detected changes require manual intervention (for example, a column was removed or renamed). Click Learn more for details; you’ll need to revert the change at source or create a new import.
Accept the columns you want
In the Review Changes dialog, tick the checkbox next to each new column you want to include in the import, then save. You don’t need to accept every new column — pick only the ones relevant to your use case, or dismiss the banner entirely if none are needed.
Verify the import
After accepting, Permutive updates the import’s column mapping and resumes syncing. Allow time for data to be ingested against the new columns, then check the import details page to confirm the update completed successfully.If data isn’t appearing after a reasonable period, see Troubleshooting below.
Troubleshooting
New columns aren't appearing after a refresh
New columns aren't appearing after a refresh
- Check the resync status — on the import details page, confirm whether the resync shows as Completed, In Progress, or Error. If still in progress, wait before taking further action.
- Wait for ingestion — data can take some time to appear after a schema update is applied.
- Check your source — confirm the new columns are present and correctly defined in your data warehouse or lake.
- Check for unsupported changes — if you’ve also renamed or removed a column, this may be blocking the update.
Error after making schema changes
Error after making schema changes
- Check the resync status — look for an error on the import details page. The error message should indicate the type of issue.
- Check your source schema — verify the columns are correctly defined in your data warehouse tool.
- Revert and re-apply — revert the change at source, re-apply it, then trigger a refresh or resync in Permutive.
- Check for unsupported changes — confirm you haven’t also made a change listed under Supported Schema Changes.
Column type has changed
Column type has changed
Any change to an existing column’s data type — whether widening (for example
INT64 → NUMERIC) or narrowing — is not supported. The change will be reported as Unsupported and must be reverted at source to restore normal import behaviour. Cohorts referencing the affected data may stop functioning correctly until the schema is reverted.Solution:- Revert the type change at source so the column matches the original type
- Trigger Resync Connection to clear the unsupported-change state
- If reverting is not possible, apply the updated schema to a new table, delete the existing import (this will impact associated cohorts), and create a new import pointing to the new table
Column is no longer available
Column is no longer available
Removing columns is not currently supported on an existing import.Solution:
- Delete the existing import in Permutive (if it’s no longer needed, as this will impact associated cohorts)
- Create a new import against the updated schema
Unable to read data due to inconsistent schemas
Unable to read data due to inconsistent schemas
Permutive has detected a mismatch between the schema it has on record and what it can read from your source. For CSV sources, this most commonly happens when old and new files with different column layouts co-exist under the same table prefix.Solution:
- For CSV: remove files that use the old schema from the table prefix so only the new schema remains
- Revert any other recent schema changes at source if needed
- Trigger Resync Connection from the Connections or Imports page
Table or schema is no longer available
Table or schema is no longer available
The source table or schema this import points to can no longer be found.Solution:
- Review the change in your warehouse and restore or recreate the table or schema as needed
- If needed, delete the import in Permutive and create a new one pointing to the correct location
Error attempting to sync schemas
Error attempting to sync schemas
Solution:
- Revert any recent changes at source
- Re-apply the changes
- Trigger a resync in Permutive from the import details page
Next Steps
Sources Overview
Learn more about managing source connections and schemas
Creating an Import
Set up a new import from a source connection