<@U04S8PLJWMT> - We done a new install of Airbyte ...
# replication-ask-ai
a
@kapa.ai - We done a new install of Airbyte and get the following errors on the sync:
Copy code
026-08-25 10:29:06 replication-orchestrator INFO failures: [ {
  "failureOrigin" : "destination",
  "failureType" : "system_error",
  "internalMessage" : "java.lang.ClassCastException: class io.airbyte.cdk.load.data.NullValue cannot be cast to class io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue (io.airbyte.cdk.load.data.NullValue and io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue are in unnamed module of loader 'app')",
  "externalMessage" : "class io.airbyte.cdk.load.data.NullValue cannot be cast to class io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue (io.airbyte.cdk.load.data.NullValue and io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue are in unnamed module of loader 'app')",
  "metadata" : {
    "attemptNumber" : 5,
    "jobId" : 27125,
    "from_trace_message" : true,
    "connector_command" : "write"
  },
  "stacktrace" : "java.lang.ClassCastException: class io.airbyte.cdk.load.data.NullValue cannot be cast to class io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue (io.airbyte.cdk.load.data.NullValue and io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue are in unnamed module of loader 'app')\n\tat io.airbyte.integrations.destination.bigquery.formatter.BigQueryRecordFormatter$Companion.formatTimestampWithoutTimezone(BigQueryRecordFormatter.kt:233)\n\tat io.airbyte.integrations.destination.bigquery.formatter.BigQueryRecordFormatter.formatRecord(BigQueryRecordFormatter.kt:105)\n\tat io.airbyte.integrations.destination.bigquery.write.standard_insert.BigqueryBatchStandardInsertsLoader.accept(BigqueryBatchStandardInsertLoader.kt:69)\n\tat io.airbyte.cdk.load.pipeline.DirectLoadRecordAccumulator.accept(DirectLoadRecordAccumulator.kt:37)\n\tat io.airbyte.cdk.load.pipeline.DirectLoadRecordAccumulator.accept(DirectLoadRecordAccumulator.kt:24)\n\tat io.airbyte.cdk.load.task.internal.LoadPipelineStepTask$execute$$inlined$fold$1.emit(Reduce.kt:225)\n\tat kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:33)\n\tat kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl$FlowKt__ChannelsKt(Channels.kt:1)\n\tat kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Channels.kt)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)\n\tat kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)\n",
  "timestamp" : 1787650081659
}, {
  "failureOrigin" : "destination",
  "internalMessage" : "Destination process exited with non-zero exit code 1",
  "externalMessage" : "Something went wrong within the destination connector",
  "metadata" : {
    "attemptNumber" : 5,
    "jobId" : 27125,
    "connector_command" : "write"
  },
  "stacktrace" : "io.airbyte.workers.internal.exception.DestinationException: Destination process exited with non-zero exit code 1\n\tat io.airbyte.workers.general.BufferedReplicationWorker.readFromDestination(BufferedReplicationWorker.java:503)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.lambda$runAsync$2(BufferedReplicationWorker.java:216)\n\tat java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n",
  "timestamp" : 1787650081984
}, {
  "failureOrigin" : "destination",
  "internalMessage" : "Destination process message delivery failed",
  "externalMessage" : "Something went wrong within the destination connector",
  "metadata" : {
    "attemptNumber" : 5,
    "jobId" : 27125,
    "connector_command" : "write"
  },
  "stacktrace" : "io.airbyte.workers.internal.exception.DestinationException: Destination process message delivery failed\n\tat io.airbyte.workers.general.BufferedReplicationWorker.writeToDestination(BufferedReplicationWorker.java:454)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.lambda$runAsyncWithTimeout$5(BufferedReplicationWorker.java:244)\n\tat java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: java.io.IOException: Broken pipe\n\tat java.base/sun.nio.ch.UnixFileDispatcherImpl.write0(Native Method)\n\tat java.base/sun.nio.ch.UnixFileDispatcherImpl.write(UnixFileDispatcherImpl.java:65)\n\tat java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:137)\n\tat java.base/sun.nio.ch.IOUtil.write(IOUtil.java:102)\n\tat java.base/sun.nio.ch.IOUtil.write(IOUtil.java:72)\n\tat java.base/sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:300)\n\tat java.base/sun.nio.ch.ChannelOutputStream.writeFully(ChannelOutputStream.java:68)\n\tat java.base/sun.nio.ch.ChannelOutputStream.write(ChannelOutputStream.java:105)\n\tat java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:309)\n\tat java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:381)\n\tat java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:357)\n\tat java.base/sun.nio.cs.StreamEncoder.lockedWrite(StreamEncoder.java:158)\n\tat java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:139)\n\tat java.base/java.io.OutputStreamWriter.write(OutputStreamWriter.java:219)\n\tat java.base/java.io.BufferedWriter.implFlushBuffer(BufferedWriter.java:178)\n\tat java.base/java.io.BufferedWriter.flushBuffer(BufferedWriter.java:163)\n\tat java.base/java.io.BufferedWriter.implWrite(BufferedWriter.java:334)\n\tat java.base/java.io.BufferedWriter.write(BufferedWriter.java:313)\n\tat java.base/java.io.Writer.write(Writer.java:278)\n\tat io.airbyte.workers.internal.VersionedAirbyteMessageBufferedWriter.write(VersionedAirbyteMessageBufferedWriter.java:39)\n\tat io.airbyte.workers.internal.LocalContainerAirbyteDestination.acceptWithNoTimeoutMonitor(LocalContainerAirbyteDestination.kt:137)\n\tat io.airbyte.workers.internal.LocalContainerAirbyteDestination.accept(LocalContainerAirbyteDestination.kt:96)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.writeToDestination(BufferedReplicationWorker.java:439)\n\t... 5 more\n",
  "timestamp" : 1787650086497
}, {
  "failureOrigin" : "source",
  "internalMessage" : "Source process read attempt failed",
  "externalMessage" : "Something went wrong within the source connector",
  "metadata" : {
    "attemptNumber" : 5,
    "jobId" : 27125,
    "connector_command" : "read"
  },
  "stacktrace" : "io.airbyte.workers.internal.exception.SourceException: Source process read attempt failed\n\tat io.airbyte.workers.general.BufferedReplicationWorker.readFromSource(BufferedReplicationWorker.java:376)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.lambda$runAsyncWithHeartbeatCheck$3(BufferedReplicationWorker.java:223)\n\tat java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: java.lang.IllegalStateException: No exit code found.\n\tat io.airbyte.workers.internal.ContainerIOHandle.getExitCode(ContainerIOHandle.kt:98)\n\tat io.airbyte.workers.internal.LocalContainerAirbyteSource.getExitValue(LocalContainerAirbyteSource.kt:89)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.readFromSource(BufferedReplicationWorker.java:356)\n\t... 5 more\n",
  "timestamp" : 1787650086598
}, {
  "failureOrigin" : "replication",
  "internalMessage" : "io.airbyte.workers.exception.WorkerException: Destination process exit with code 1. This warning is normal if the job was cancelled.",
  "externalMessage" : "Something went wrong during replication",
  "metadata" : {
    "attemptNumber" : 5,
    "jobId" : 27125
  },
  "stacktrace" : "java.lang.RuntimeException: io.airbyte.workers.exception.WorkerException: Destination process exit with code 1. This warning is normal if the job was cancelled.\n\tat io.airbyte.workers.general.BufferedReplicationWorker$CloseableWithTimeout.lambda$close$0(BufferedReplicationWorker.java:548)\n\tat io.airbyte.workers.general.BufferedReplicationWorker.lambda$runAsyncWithTimeout$5(BufferedReplicationWorker.java:244)\n\tat java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: io.airbyte.workers.exception.WorkerException: Destination process exit with code 1. This warning is normal if the job was cancelled.\n\tat io.airbyte.workers.internal.LocalContainerAirbyteDestination.close(LocalContainerAirbyteDestination.kt:61)\n\tat io.airbyte.workers.general.BufferedReplicationWorker$CloseableWithTimeout.lambda$close$0(BufferedReplicationWorker.java:546)\n\t... 5 more\n",
  "timestamp" : 1787650086604
} ]
2026-08-25 10:29:06 replication-orchestrator INFO
2026-08-25 10:29:06 replication-orchestrator INFO ----- END REPLICATION -----
2026-08-25 10:29:06 replication-orchestrator INFO
2026-08-25 10:29:06 replication-orchestrator INFO Returning output...
2026-08-25 10:29:07 platform INFO Closing Segment analytics client...
2026-08-25 10:29:07 platform INFO Waiting for Segment analytic client to flush enqueued messages...
2026-08-25 10:29:07 platform INFO
----- START POST REPLICATION OPERATIONS -----

2026-08-25 10:29:07 platform INFO No post-replication operation(s) to perform.
2026-08-25 10:29:07 platform INFO
----- END POST REPLICATION OPERATIONS -----

2026-08-25 10:29:07 platform INFO Retry State: RetryManager(completeFailureBackoffPolicy=BackoffPolicy(minInterval=PT10S, maxInterval=PT30M, base=3), partialFailureBackoffPolicy=null, successiveCompleteFailureLimit=5, successivePartialFailureLimit=1000, totalCompleteFailureLimit=10, totalPartialFailureLimit=20, successiveCompleteFailures=5, successivePartialFailures=0, totalCompleteFailures=5, totalPartialFailures=1)
 Backoff before next attempt: 13 minutes 30 seconds
2026-08-25 10:29:07 platform ERROR Failing job: 27125, reason: Job failed after too many retries for connection 719ce18b-72fc-4af9-9fb5-8d2b94c26d2c
2026-08-25 10:29:07 platform INFO Segment analytic client flush complete.
2026-08-25 10:29:07 platform INFO Segment analytics client closed.  No new events will be accepted.
Could you diagnose the failure please.
k
Diagnosis The root cause of your sync failure is clearly identified in the first error:
Copy code
java.lang.ClassCastException: class io.airbyte.cdk.load.data.NullValue cannot be cast to 
class io.airbyte.cdk.load.data.TimestampWithoutTimezoneValue
  at io.airbyte.integrations.destination.bigquery.formatter.BigQueryRecordFormatter$Companion
     .formatTimestampWithoutTimezone(BigQueryRecordFormatter.kt:233)
What's happening Your destination-bigquery connector is receiving a record where a field declared as
TimestampWithoutTimezone
type contains a null value. When the
BigQueryRecordFormatter
tries to format that field, it attempts to cast the value directly to
TimestampWithoutTimezoneValue
without first checking whether the value is actually
NullValue
— causing the
ClassCastException
. [NullValue cast issue] The cascade of subsequent errors (broken pipe, source read failure, destination exit code 1) are all secondary effects of the destination process crashing due to this exception. What triggers it This happens when: • One or more records in your source data have a null value in a field that is typed as
timestamp
(without timezone)
in the stream schema. • The BigQuery destination connector does not handle the
NullValue
case before attempting to format the timestamp field. Recommended actions 1. Check your source data — Identify which stream/field contains null timestamps. Look for fields in your schema typed as
timestamp
(without timezone) that may legitimately contain nulls. 2. This is a known bug — This issue has been reported and is tracked as an open bug in the Airbyte repository. [NullValue cast issue] The fix requires the
formatTimestampWithoutTimezone
method to handle
NullValue
before casting. 3. Workarounds to try in the meantime: ◦ If possible, cast the nullable timestamp field to a string on the source side to avoid the type mismatch. ◦ Modify the stream schema in Airbyte to declare the problematic field as
string
type instead of
timestamp without timezone
, so the connector won't attempt timestamp formatting. ◦ Check if a newer version of the destination-bigquery connector is available that includes a fix for this issue, and upgrade if so. 1. Check the
BigQueryCSVRowGenerator
— Note that the bulk loader path (
BigQueryCSVRowGenerator
) does correctly check for
NullValue
before formatting: [CSV row generator]if (actualValue is NullValue) { return@forEach }However, the standard insert path (
BigQueryRecordFormatter.formatTimestampWithoutTimezone
) does not have this guard, which is why you're hitting the crash. Your sync is using the standard insert path. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
a
@kapa.ai - We have version 3.0.10 of the BigQuery connector. There is an update to version 3.0.22. Does this version fix this issue ?
k
I'm sorry, but the knowledge sources do not contain enough information to confirm whether version 3.0.22 of the destination-bigquery connector specifically fixes this issue. What the knowledge sources do tell us: • The bug is a known open issue tracked on GitHub, affecting the
BigQueryRecordFormatter.formatTimestampWithoutTimezone
method in the standard insert path. [NullValue cast issue] • There is no changelog or release notes for version 3.0.22 in the available knowledge sources, so I cannot confirm whether the fix was included in that version. What I'd recommend 1. Check the connector's changelog directly in the Airbyte GitHub repository or the Airbyte connector registry for the destination-bigquery release notes between 3.0.10 and 3.0.22. 2. Check the open GitHub issue at github.com/airbytehq/airbyte/issues/69032 — if the issue has been closed or linked to a PR, the PR description will typically mention which connector version includes the fix. 3. As a precaution, even if you upgrade, the underlying trigger (null values in timestamp-typed fields in your source data) will still exist. It's worth identifying and addressing those records on the source side as well, as a defensive measure. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.