Skip to content

Conversation

@vai-airbyte
Copy link
Contributor

@vai-airbyte vai-airbyte commented Oct 24, 2025

What

Adds type definition for the value field in the issue_properties stream schema.

Problem: The value field in issue_properties stream has no type definition, causing Airbyte to infer it as UNKNOWN type. When syncing to Snowflake destination v4.0+, this results in errors like:

net.snowflake.client.jdbc.SnowflakeSQLException: Failed to cast variant value "2024-06-04T12:50:17+0530" to OBJECT
net.snowflake.client.jdbc.SnowflakeSQLException: Failed to cast variant value 1735880410400 to OBJECT
net.snowflake.client.jdbc.SnowflakeSQLException: Failed to cast variant value [{"entryIndex":0...}] to OBJECT
  • Snowflake destination v4.x (Direct-Load) attempts to cast UNKNOWN types to OBJECT
  • The actual data in the value field can be strings, numbers, booleans, objects, or arrays (per Jira API spec: value: any)
  • This mismatch causes cast failures

How

Added explicit type definition to the value field in the issue_properties stream schema within manifest.yaml:

value:
  description: The value of the property. Required on create and update.
  type:
  - 'null'
  - string
  - number
  - integer
  - boolean
  - object
  - array

An alternative, more conservative approach would be to use only ["null", "string"] to force all values to be stringified, which guarantees no casting errors but loses native type information. The integration team should validate that union types work correctly with Snowflake destination v4.x.

Review guide

  • manifest.yaml - Review the issue_properties stream schema definition, specifically the value field type addition

User Impact

  • Fixes sync failures for users syncing issue_properties to Snowflake destination v4.x
  • Accurately represents Jira API specification (value: any)
  • Preserves native data types where possible (numbers, booleans, objects, arrays)

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

@github-actions
Copy link
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
    • /bump-bulk-cdk-version type=patch changelog='foo' - Bump the Bulk CDK's version. type can be major/minor/patch.
  • Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.

📝 Edit this welcome message.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 24, 2025

Deploy preview for airbyte-docs ready!

✅ Preview
https://airbyte-docs-lydr7q3ae-airbyte-growth.vercel.app

Built with commit 21f7f88.
This pull request is being automatically deployed with vercel-action

@github-actions
Copy link
Contributor

github-actions bot commented Oct 24, 2025

source-jira Connector Test Results

69 tests   64 ✅  2m 26s ⏱️
 2 suites   5 💤
 2 files     0 ❌

Results for commit 21f7f88.

♻️ This comment has been updated with latest results.

@agarctfi agarctfi requested a review from a team October 24, 2025 17:46
@agarctfi
Copy link
Contributor

@airbytehq/dev-integrate based on the API docs, the value for value can be anything. Do you know what the best approach would be here?

readOnly: true
value:
description: The value of the property. Required on create and update.
type:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pnilan didn't we had an outage on source-hubspot because we had a field with multiple types? Did we have a path forward for solving this problem?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I deployed a dev image 4.3.6-dev.66c1dcca2c and tested it, seems to work. Snowflake sees the column as VARIANT and all different properties synced successfully:

image

But there may be something else I'm not thinking of, so I'll let you discuss and decide!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants