<@U04S8PLJWMT> The error below is occurring during...
# ask-ai
j
@kapa.ai The error below is occurring during an attempt to set up Redshift as a source in a connection. The test method succeeds in configuring the source but this error occurs during setup of a connection using the source. The destination is not the issue as that destination works with other sources and this source fails with multiple destinations.
Copy code
2025-12-08 09:00:37  ERROR 2025-12-08 09:00:37 error ERROR i.a.c.i.b.AirbyteExceptionHandler(uncaughtException):64 Something went wrong in the connector. See the logs for more details. java.lang.NullPointerException: null value in entry: isNullable=null
	at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:33) ~[guava-33.0.0-jre.jar:?]
	at com.google.common.collect.ImmutableMapEntry.<init>(ImmutableMapEntry.java:54) ~[guava-33.0.0-jre.jar:?]
	at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:345) ~[guava-33.0.0-jre.jar:?]
	at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:454) ~[guava-33.0.0-jre.jar:?]
	at io.airbyte.cdk.integrations.source.jdbc.AbstractJdbcSource.getColumnMetadata(AbstractJdbcSource.java:248) ~[airbyte-cdk-db-sources-0.20.4.jar:?]
	at io.airbyte.cdk.db.jdbc.JdbcDatabase$1.tryAdvance(JdbcDatabase.java:84) ~[airbyte-cdk-core-0.20.4.jar:?]
	at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at io.airbyte.cdk.db.jdbc.DefaultJdbcDatabase.bufferedResultSetQuery(DefaultJdbcDatabase.java:57) ~[airbyte-cdk-core-0.20.4.jar:?]
	at io.airbyte.cdk.integrations.source.jdbc.AbstractJdbcSource.discoverInternal(AbstractJdbcSource.java:171) ~[airbyte-cdk-db-sources-0.20.4.jar:?]
	at io.airbyte.integrations.source.redshift.RedshiftSource.discoverInternal(RedshiftSource.java:94) ~[io.airbyte.airbyte-integrations.connectors-source-redshift.jar:?]
	at io.airbyte.integrations.source.redshift.RedshiftSource.discoverInternal(RedshiftSource.java:30) ~[io.airbyte.airbyte-integrations.connectors-source-redshift.jar:?]
	at io.airbyte.cdk.integrations.source.relationaldb.AbstractDbSource.discoverWithoutSystemTables(AbstractDbSource.java:268) ~[airbyte-cdk-db-sources-0.20.4.jar:?]
	at io.airbyte.cdk.integrations.source.relationaldb.AbstractDbSource.discover(AbstractDbSource.java:126) ~[airbyte-cdk-db-sources-0.20.4.jar:?]
	at io.airbyte.cdk.integrations.base.IntegrationRunner.runInternal(IntegrationRunner.java:159) ~[airbyte-cdk-core-0.20.4.jar:?]
	at io.airbyte.cdk.integrations.base.IntegrationRunner.run(IntegrationRunner.java:125) ~[airbyte-cdk-core-0.20.4.jar:?]
	at io.airbyte.integrations.source.redshift.RedshiftSource.main(RedshiftSource.java:141) ~[io.airbyte.airbyte-integrations.connectors-source-redshift.jar:?]

Stack Trace: java.lang.NullPointerException: null value in entry: isNullable=null
	at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:33)
	at com.google.common.collect.ImmutableMapEntry.<init>(ImmutableMapEntry.java:54)
	at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:345)
	at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:454)
	at io.airbyte.cdk.integrations.source.jdbc.AbstractJdbcSource.getColumnMetadata(AbstractJdbcSource.java:248)
	at io.airbyte.cdk.db.jdbc.JdbcDatabase$1.tryAdvance(JdbcDatabase.java:84)
	at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at io.airbyte.cdk.db.jdbc.DefaultJdbcDatabase.bufferedResultSetQuery(DefaultJdbcDatabase.java:57)
	at io.airbyte.cdk.integrations.source.jdbc.AbstractJdbcSource.discoverInternal(AbstractJdbcSource.java:171)
	at io.airbyte.integrations.source.redshift.RedshiftSource.discoverInternal(RedshiftSource.java:94)
	at io.airbyte.integrations.source.redshift.RedshiftSource.discoverInternal(RedshiftSource.java:30)
	at io.airbyte.cdk.integrations.source.relationaldb.AbstractDbSource.discoverWithoutSystemTables(AbstractDbSource.java:268)
	at io.airbyte.cdk.integrations.source.relationaldb.AbstractDbSource.discover(AbstractDbSource.java:126)
	at io.airbyte.cdk.integrations.base.IntegrationRunner.runInternal(IntegrationRunner.java:159)
	at io.airbyte.cdk.integrations.base.IntegrationRunner.run(IntegrationRunner.java:125)
	at io.airbyte.integrations.source.redshift.RedshiftSource.main(RedshiftSource.java:141)
k
The knowledge sources show this exact error pattern (
NullPointerException: null value in entry: isNullable=null
in
AbstractJdbcSource.getColumnMetadata
) for the Redshift source connector and confirm it is a known connector bug, not a destination or general Airbyte configuration issue.[[Redshift NPE](https://github.com/airbytehq/airbyte/issues/48856); [Late-binding views](https://github.com/airbytehq/airbyte/issues/48832)] From the linked issues: - The failure happens during schema discovery when creating a connection, after the source “Test” succeeds — exactly as you describe.[[Redshift NPE](https://github.com/airbytehq/airbyte/issues/48856)] - A more specific root cause was identified: schemas that contain late‑binding views cause discovery to fail with this
isNullable=null
NPE.[[Late-binding views](https://github.com/airbytehq/airbyte/issues/48832)] - When users restrict the Redshift source to only schemas that do not contain late‑binding views, discovery and connection creation succeed.[[Late-binding views](https://github.com/airbytehq/airbyte/issues/48832)] Given that, the most likely cause in your case is: > One or more of the schemas you’re including in the Redshift source contain late‑binding views, and the current Redshift connector version you’re using cannot handle their metadata, leading to the
isNullable=null
NPE during discovery. ### What you can try now Based on the issues above, the documented workarounds are: 1. Exclude schemas with late‑binding views - In the Redshift source configuration, limit the selection to schemas that you know do not contain late‑binding views and re‑run discovery/connection setup.[[Late-binding views](https://github.com/airbytehq/airbyte/issues/48832)] - If that works, you’ve confirmed you’re hitting the same bug. 2. Check for an updated Redshift connector - The bug is tracked under “[source-redshift] Can't read schema if schema contains late-binding views”.[[Late-binding views](https://github.com/airbytehq/airbyte/issues/48832)] - If your deployment allows, update to the latest
source-redshift
version that includes a fix for this issue (the issue is closed, which indicates a fix was merged, but the knowledge sources do not specify the exact fixed version). 3. If you still hit the error even without late‑binding views - The knowledge sources do not provide additional root causes beyond late‑binding views and the generic
isNullable=null
bug, so I can’t reliably suggest further Redshift‑side changes. In that case, capturing: - Your Redshift source connector version - A list of included schemas and whether they contain views - …and sharing them on the GitHub issue or Airbyte forum would be the next step, referencing that you’re seeing the same stack trace as in the linked issues.[[Redshift NPE](https://github.com/airbytehq/airbyte/issues/48856)] Because the available information is limited to these issues, I can’t definitively confirm your exact schema contents, but all evidence from the logs and stack trace matches the known late‑binding‑view discovery bug in the Redshift source connector.
j
@kapa.ai PR 60892 seems to address this and is only failing because there are not secrets available for the run-connector-tests suite. Based on my read of the contributor guidelines, this is expected and the PR is as far as it can be advanced without a maintainer. Is that correct?
k
A message from kapa.ai
You’re correct that community PRs can get “stuck” on connector tests that require secrets, and that this is expected until a maintainer steps in. The docs state that: - Connector tests in CI are run via
airbyte-ci
, and suites that need credentials (e.g., integration or acceptance tests) require secrets configured in Airbyte’s secret store.[[Testing connectors](https://docs.airbyte.com/platform/connector-development/testing-connectors); [connectorTestSuitesOptions](https://docs.airbyte.com/platform/connector-development/connector-metadata-file#the-connectortestsuitesoptions-section)] - Adding new test secrets to CI requires manual intervention from an Airbyter, and contributors are asked to “reach out to your PR reviewers if you want to add a test secret to our CI.”[[connectorTestSuitesOptions](https://docs.airbyte.com/platform/connector-development/connector-metadata-file#the-connectortestsuitesoptions-section)] - Maintainers can then use PR slash commands like
/run-connector-tests
to run the connector tests with their permissions and configured secrets.[[PR slash commands](https://docs.airbyte.com/platform/connector-development/local-connector-development#pr-slash-commands)] So, if PR 60892 is failing only because
run-connector-tests
cannot access the required secrets, that situation matches what the docs describe: - As a community contributor, you generally cannot fix the missing-secrets issue yourself. - The PR is effectively “as far as it can go” on your side; a maintainer needs to: - Ensure the appropriate test secrets exist (if new), and/or - Trigger
/run-connector-tests
from the main repo context. The knowledge sources don’t mention PR 60892 specifically, but they do confirm that this pattern (tests blocked on secrets, needing maintainer action) is expected behavior.