Error Handling in Airbyte Connection Status API

Summary

The user encountered an internal server error (status 500) while using the Airbyte Connection Status API. The error message indicates a problem with deserialization related to io.airbyte.config.FailureReason$FailureOrigin.


Question

  "url": "<http://127.0.0.1:8000/workspaces/7c886d5a-25d0-4c6a-99d3-396651e393cb/connections/e71a8d1d-6691-4662-aad5-74a4343477b6>",
  "airbyteVersion": "0.63.9",
  "errorType": "HttpError",
  "errorConstructor": "Ah",
  "error": {
    "i18nKey": "errors.http.internalServerError",
    "i18nParams": {
      "status": 500
    },
    "name": "HttpError",
    "requestId": "wS6qMtyznoUk8RSJbgwHCZ",
    "request": {
      "url": "/api/v1/connections/status",
      "method": "post",
      "headers": {
        "Content-Type": "application/json"
      },
      "data": {
        "connectionIds": [
          "e71a8d1d-6691-4662-aad5-74a4343477b6"
        ]
      }
    },
    "status": 500,
    "response": {
      "message": "Internal Server Error: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `io.airbyte.config.FailureReason$FailureOrigin`, problem: normalization\n at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 503] (through reference chain: io.airbyte.config.AttemptFailureSummary[\"failures\"]-&gt;java.util.ArrayList[0]-&gt;io.airbyte.config.FailureReason[\"failureOrigin\"])",
      "exceptionClassName": "java.lang.RuntimeException",
      "exceptionStack": [
        "java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `io.airbyte.config.FailureReason$FailureOrigin`, problem: normalization",
        " at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 503] (through reference chain: io.airbyte.config.AttemptFailureSummary[\"failures\"]-&gt;java.util.ArrayList[0]-&gt;io.airbyte.config.FailureReason[\"failureOrigin\"])",
        "\tat io.airbyte.commons.json.Jsons.deserialize(Jsons.java:101)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.getAttemptFromRecordLight(DefaultJobPersistence.java:480)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.getJobsFromResultLight(DefaultJobPersistence.java:545)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.listJobsLight(DefaultJobPersistence.java:1158)",
        "\tat io.airbyte.commons.server.handlers.ConnectionsHandler.getConnectionStatuses(ConnectionsHandler.java:997)",
        "\tat io.airbyte.server.apis.ConnectionApiController.lambda$getConnectionStatuses$15(ConnectionApiController.java:237)",
        "\tat io.airbyte.server.apis.ApiHelper.execute(ApiHelper.java:28)",
        "\tat io.airbyte.server.apis.ConnectionApiController.getConnectionStatuses(ConnectionApiController.java:237)",
        "\tat io.airbyte.server.apis.$ConnectionApiController$Definition$Exec.dispatch(Unknown Source)",
        "\tat io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invokeUnsafe(AbstractExecutableMethodsDefinition.java:461)",
        "\tat io.micronaut.context.DefaultBeanContext$BeanContextUnsafeExecutionHandle.invokeUnsafe(DefaultBeanContext.java:4325)",
        "\tat io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:271)",
        "\tat io.micronaut.web.router.DefaultUriRouteMatch.execute(DefaultUriRouteMatch.java:39)",
        "\tat io.micronaut.http.server.RouteExecutor.executeRouteAndConvertBody(RouteExecutor.java:490)",
        "\tat io.micronaut.http.server.RouteExecutor.lambda$callRoute$6(RouteExecutor.java:467)",
        "\tat io.micronaut.core.execution.ExecutionFlow.lambda$async$1(ExecutionFlow.java:87)",
        "\tat io.micronaut.core.propagation.PropagatedContext.lambda$wrap$3(PropagatedContext.java:211)",
        "\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)",
        "\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)",
        "\tat java.base/java.lang.Thread.run(Thread.java:1583)",
        "Caused by: com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `io.airbyte.config.FailureReason$FailureOrigin`, problem: normalization",
        " at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 503] (through reference chain: io.airbyte.config.AttemptFailureSummary[\"failures\"]-&gt;java.util.ArrayList[0]-&gt;io.airbyte.config.FailureReason[\"failureOrigin\"])",
        "\tat com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47)",
        "\tat com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2014)",
        "\tat com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1426)",
        "\tat com.fasterxml.jackson.databind.deser.std.FactoryBasedEnumDeserializer.deserialize(FactoryBasedEnumDeserializer.java:205)",
        "\tat com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:361)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:246)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)",
        "\tat com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)",
        "\tat com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4905)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)",
        "\tat io.airbyte.commons.json.Jsons.deserialize(Jsons.java:99)",
        "\t... 19 more",
        "Caused by: java.lang.IllegalArgumentException: normalization",
        "\tat io.airbyte.config.FailureReason$FailureOrigin.fromValue(FailureReason.java:455)",
        "\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)",
        "\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)",
        "\tat com.fasterxml.jackson.databind.introspect.AnnotatedMethod.callOnWith(AnnotatedMethod.java:118)",
        "\tat com.fasterxml.jackson.databind.deser.std.FactoryBasedEnumDeserializer.deserialize(FactoryBasedEnumDeserializer.java:194)",
        "\t... 33 more"
      ],
      "rootCauseExceptionClassName": "java.lang.Class",
      "rootCauseExceptionStack": [
        "com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `io.airbyte.config.FailureReason$FailureOrigin`, problem: normalization",
        " at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 503] (through reference chain: io.airbyte.config.AttemptFailureSummary[\"failures\"]-&gt;java.util.ArrayList[0]-&gt;io.airbyte.config.FailureReason[\"failureOrigin\"])",
        "\tat com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47)",
        "\tat com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2014)",
        "\tat com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1426)",
        "\tat com.fasterxml.jackson.databind.deser.std.FactoryBasedEnumDeserializer.deserialize(FactoryBasedEnumDeserializer.java:205)",
        "\tat com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:361)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:246)",
        "\tat com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)",
        "\tat com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)",
        "\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)",
        "\tat com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4905)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)",
        "\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)",
        "\tat io.airbyte.commons.json.Jsons.deserialize(Jsons.java:99)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.getAttemptFromRecordLight(DefaultJobPersistence.java:480)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.getJobsFromResultLight(DefaultJobPersistence.java:545)",
        "\tat io.airbyte.persistence.job.DefaultJobPersistence.listJobsLight(DefaultJobPersistence.java:1158)",
        "\tat io.airbyte.commons.server.handlers.ConnectionsHandler.getConnectionStatuses(ConnectionsHandler.java:997)",
        "\tat io.airbyte.server.apis.ConnectionApiController.lambda$getConnectionStatuses$15(ConnectionApiController.java:237)",
        "\tat io.airbyte.server.apis.ApiHelper.execute(ApiHelper.java:28)",
        "\tat io.airbyte.server.apis.ConnectionApiController.getConnectionStatuses(ConnectionApiController.java:237)",
        "\tat io.airbyte.server.apis.$ConnectionApiController$Definition$Exec.dispatch(Unknown Source)",
        "\tat io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invokeUnsafe(AbstractExecutableMethodsDefinition.java:461)",
        "\tat 
        "\t... 33 more"
      ]
    }
  },
  "stacktrace": "HttpError: errors.http.internalServerError\n    at Zpe (<http://127.0.0.1:8000/assets/core-o8rs17ygj8.js:119:9725>)",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
  "featureFlags": {}
}```

<br>

---

This topic has been created from a Slack thread to give it more visibility.
It will be on Read-Only mode here. [Click here](https://airbytehq.slack.com/archives/C021JANJ6TY/p1721920033344039) if you want 
to access the original thread.

[Join the conversation on Slack](https://slack.airbyte.com)

<sub>
["error-handling", "airbyte-connection-status-api", "internal-server-error", "deserialization", "failureorigin"]
</sub>