Ashby Migration Guide
Upgrading to 2.0.0
Follow the steps below to preserve historical data. If you don't, you risk permanent and irreversible loss of data in your destination.
Version 2.0.0 corrects four stream schemas. These type and field changes affect every destination; they are not limited to data-lake destinations.
What changed
applications.archiveReasonchanges from a string to an object withid,text,reasonType,isArchived, andcustomFieldsfields.job_postings.publishedDatechanges from a date-time to a date.application_criteria_evaluationsgains a primary key ofapplication_idandid. Connections that use a deduplicated sync mode can now key this stream on those fields; earlier versions had no primary key.application_criteria_evaluationsremoves the never-populatedassessmentType,criterionName, andjobIdcolumns.interviewsremoves the never-populatedapplicationId,interviewScheduleId,interviewStageId,status,createdAt,updatedAt,cancelledAt,startTime,endTime,feedbackLink,interviewerUserIds, andmeetingLinkcolumns.interviewsadds a nullableownershipstring column, which Ashby returns on interview definitions.
The removed interview scheduling fields that are available elsewhere are on interview_schedules: applicationId, interviewStageId, status, createdAt, and updatedAt are top-level fields. startTime, endTime, feedbackLink, interviewerUserIds, meetingLink, and interviewScheduleId are fields on objects in its interviewEvents array. cancelledAt has no direct replacement; cancellation is reflected in the schedule's status.
Why this changed
The schemas now match the fields and types returned by Ashby's API. The criteria-evaluation primary key also gives connections that use a deduplicated sync mode a source-defined key for evaluation records.
Who is affected
Anyone syncing applications, job_postings, application_criteria_evaluations, or interviews is affected. The type changes and removed columns apply to all destination types, not only data lakes. Connections that don't sync these four streams are unaffected.
How the new schema reaches your connection depends on its Detect and propagate schema changes setting. With Propagate field changes only or Propagate all field and stream changes, the new types and removed columns apply on the first sync after the upgrade, including the automatic upgrade at the deadline. If you use Snowflake, S3 Data Lake, or Iceberg, plan the backup, drop, and refresh in step 3 before then. With Approve all changes myself, syncs keep running with your current schema until you approve the change in step 1. With Stop future syncs, Airbyte pauses the connection when it detects the change.
Required actions
-
Refresh the source schema for all four affected streams.
Existing
applicationsrows keep their previousarchiveReasonvalue until the application next changes in Ashby, becauseapplicationssyncs incrementally. To rewrite every row in the new shape, refresh theapplicationsstream and choose Refresh and retain records. With Incremental | Append + Deduped, each re-synced application replaces its existing row byid. With Incremental | Append, the re-synced row is added next to the old one. The re-sync re-reads applications created after your start date. Don't choose Refresh and remove records: it clears the table first, and applications deleted in Ashby since your last sync don't return. -
application_criteria_evaluationsis a full-refresh stream, so the new primary key applies on the next sync and no reset is needed. If you sync it with Full refresh | Append, don't clear it. The connector only returns evaluations for applications currently in a pre-interview screen stage, so clearing permanently removes evaluations for applications that have since moved on. -
If a sync fails because the destination can't change the type of an existing column, back up the affected tables, then drop them and refresh the same streams in Airbyte. Dropping
applicationspermanently loses applications deleted in Ashby since your last sync unless you keep that backup. S3 Data Lake and Iceberg report a schema-evolution error. Snowflake can't convert the existingarchiveReasonstring column to an object, so Incremental and Full refresh | Append syncs ofapplicationsfail on every attempt withinvalid type [CAST(... AS OBJECT)] for parameter 'TO_OBJECT'. Forapplications, the refresh is required: dropping the table alone doesn't reset the incremental cursor, so the next sync would write only recently updated applications.
Update downstream queries
applications.archiveReasonis now an object. Replace comparisons against the string with its fields, for examplearchiveReason.textorarchiveReason.reasonType(such asRejectedByOrg).job_postings.publishedDateis now a date, not a timestamp. Remove time-zone conversions and timestamp casts.- Queries that select the removed
interviewsorapplication_criteria_evaluationscolumns must stop selecting them. Those values were always null; read scheduled-interview data frominterview_schedulesinstead.
Upgrading to 1.0.0
Version 1.0.0 declares item schemas for ten previously-untyped array columns across the applications, candidates, and jobs streams. This is a breaking change for affected data-lake destinations.
What changed
The following array columns now declare their element schemas:
applications.customFieldsapplications.hiringTeamcandidates.customFieldscandidates.emailAddressescandidates.fileHandlescandidates.phoneNumberscandidates.socialLinkscandidates.tagsjobs.customFieldsjobs.hiringTeam
Why this changed
The connector now declares documented Ashby API fields and the schemas of their array elements. These declarations re-type the affected columns from untyped arrays to typed arrays on S3 Data Lake and Iceberg destinations.
Who is affected
This change affects connections that write the applications, candidates, or jobs streams to S3 Data Lake or Iceberg destinations. Other destinations, including BigQuery and Snowflake, are unaffected because they map typed and untyped arrays identically.
Required actions
- Refresh the source schema for the affected streams.
- If a sync fails with a schema-evolution error, drop and recreate the affected destination tables.
Connector upgrade guide
Review the following information to prepare for and execute your upgrade.
Review the changelog
Before updating a connector, review the changelog to understand the changes and their potential impact on your existing connections. Find the changelog for any connector by navigating to the bottom of the documentation for that connector. Major version releases also include a migration guide.
Plan for major updates
Major updates may require you to adjust connection settings or even make changes to your data pipelines. Allocate enough time and resources for this. Use the migration guide to ensure your transition process goes smoothly.
Airbyte provides tooling that guarantees safe connector version bumps and enforces automated version bumps for minor and patch updates. You always need to manually update for major version bumps.
Self-managed plans: pin a specific version if you can't update
If you're unable to upgrade to the new version of a connector, you can pin that connector to a specific version.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Edit the entry for the connector you want to pin.
-
Set the Default Version to the version you want to use.
Self-managed plans: update the local connector image
If you self-manage Airbyte, you must manually update the connector image in your local registry before proceeding with the migration. Follow the steps below.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Find the connector you want to update in the list of connectors.
noteAirbyte lists two versions, the current in-use version and the latest version available.
-
Click Change to update your OSS version to the latest available version.
Update the connector version
Update each instance of the connector separately. If you have multiple instances of a connector, updating one doesn't affect the others.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Select the instance of the connector you wish to upgrade.
-
Select Upgrade.
-
Follow the prompt to confirm you are ready to upgrade to the new version.
Clear data from affected streams
After upgrading a connector with a breaking change, you must refresh affected schemas and clear your data.
-
In the nav bar, click Connections.
-
Find the connection affected by the upgrade.
-
Click the Schema tab.
-
Click Refresh source schema (looks like ). When Airbyte finishes, it shows you any detected schema changes.
-
Click OK.
-
Click Save changes
-
Clear the data for the streams affected by this upgrade.
Once the clear is complete, you can begin syncing your data again as usual.