Mixpanel connector issue (follow-up on previous case)

Hello everyone,

I would like to follow-up on a case that has been closed before I could check if the solution was working.

I tried to refresh the schema from Mixpanel from both the connection and the source in the airbyte menu. In both case, the loading bar never ends no matter how long I wait. Below is both a loom (not interesting but showing that I waited a long time) and a screen cap.

Can someone now what can I try to make things work please ?

Thanks a lot

Hello there! You are receiving this message because none of your fellow community members has stepped in to respond to your topic post. (If you are a community member and you are reading this response, feel free to jump in if you have the answer!) As a result, the Community Assistance Team has been made aware of this topic and will be investigating and responding as quickly as possible.
Some important considerations that will help your to get your issue solved faster:

  • It is best to use our topic creation template; if you haven’t yet, we recommend posting a followup with the requested information. With that information the team will be able to more quickly search for similar issues with connectors and the platform and troubleshoot more quickly your specific question or problem.
  • Make sure to upload the complete log file; a common investigation roadblock is that sometimes the error for the issue happens well before the problem is surfaced to the user, and so having the tail of the log is less useful than having the whole log to scan through.
  • Be as descriptive and specific as possible; when investigating it is extremely valuable to know what steps were taken to encounter the issue, what version of connector / platform / Java / Python / docker / k8s was used, etc. The more context supplied, the quicker the investigation can start on your topic and the faster we can drive towards an answer.
  • We in the Community Assistance Team are glad you’ve made yourself part of our community, and we’ll do our best to answer your questions and resolve the problems as quickly as possible. Expect to hear from a specific team member as soon as possible.

Thank you for your time and attention.
Best,
The Community Assistance Team

Sorry, it was closed because of a problem between Discourse/Zendesk integration.
Can you open the Network tab and follow the API request to /discover_schema endpoint?
See image bellow:

Hello @marcosmarxm,

Please find bellow what happen in the network tab when trying to refresh the source schema.

Let me know if there is something I should to on my end.
Best,

You see there is a /get give error 500. You must click in that API request with error 500 and after in the tab Response (check my image above). This will give your the error why is not working.

Hello @marcosmarxm, thank you ! I’m sorry, I’m not really at ease on that kind of thing. But I get the idea that we’re trying to get the answer from the server.

Here is the error code I was able to find:

{"message":"Internal Server Error: Cannot invoke \"io.airbyte.api.model.generated.AirbyteCatalog.getStreams()\" because \"discovered\" is null","exceptionClassName":"java.lang.NullPointerException","exceptionStack":["java.lang.NullPointerException: Cannot invoke \"io.airbyte.api.model.generated.AirbyteCatalog.getStreams()\" because \"discovered\" is null","\tat io.airbyte.server.handlers.WebBackendConnectionsHandler.updateSchemaWithDiscovery(WebBackendConnectionsHandler.java:287)","\tat io.airbyte.server.handlers.WebBackendConnectionsHandler.webBackendGetConnection(WebBackendConnectionsHandler.java:231)","\tat io.airbyte.server.apis.ConfigurationApi.lambda$webBackendGetConnection$90(ConfigurationApi.java:828)","\tat io.airbyte.server.apis.ConfigurationApi.execute(ConfigurationApi.java:862)","\tat io.airbyte.server.apis.ConfigurationApi.webBackendGetConnection(ConfigurationApi.java:828)","\tat jdk.internal.reflect.GeneratedMethodAccessor544.invoke(Unknown Source)","\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)","\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)","\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)","\tat org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:292)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:274)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:244)","\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)","\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)","\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)","\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)","\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)","\tat org.eclipse.jetty.server.Server.handle(Server.java:501)","\tat org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)","\tat org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)","\tat org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)","\tat org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)","\tat java.base/java.lang.Thread.run(Thread.java:833)"]}

Does it help you to understand the root cause ?

Best,

Yep, are you using a customization of Airbyte? I’m seeing the call is made to apiOverride.ts script. If it is the case are the custom changes follows the latest updates? Because using the default Airbyte with latest version I’m able to retrieve Mixpanel catalog with Snowflake.

Hello @marcosmarxm we don’t use any customization but Airbyte was not on the last version (we’re waiting for airbyte cloud to open in EU) and it’s the case now (0.40.14).

I have a new error that you can find in the logs below
166f2fb3_cf5f_4233_b60f_54cec13745a4_logs_698_txt.txt (644.8 KB)

Also, below the detail from the replication tab for the engage stream

I tried to relaunch a sync without the engage stream for test purpose, I’ll keep you posted.
Update: The sync work when deactivating the engage stream.

Thanks for your help.

Alban sorry for not solving your issue. But there is something wrong in your schema and I don’t know why.
Can you confirm you have clicked in this button?

Look at my schema:

All fields names are String and lowercase. Please update your schema and test stream engage. again.

Hello @marcosmarxm,
No worries we’ll find the root cause at some point :slight_smile: Thankfully, Mixpanel data are not the only ones I need to work on.

To give you a bit more contexte: mixpanel is a tool that can be customised based on the information my dev team decided to incorporate in the product. Therefore it is likely we don’t have the same schema as it seems you have the basic one from mixpanel itself. And we added some custom attributes into Mixpanel to track different kind of information (such as the Client ID) which is a number. Does it make more sense to you ?

Why having a different schema is impacting the way the sync works ? Is the connector not able to find custom info ?

Thank you

If you’re using a custom connector probably you must correct the data type you’re mapping because client id is not a number it must be a string. Normalization is failing because a non-numeric value in the engage table:

2022-10-14 06:16:35 e[42mnormalizatione[0m > 100038 (22018): Numeric value '' is not recognized

Did you refresh the Schema? Because the connector has a fixed schema for this stream…