Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't load sizes in Ackee v3 #217

Closed
productdevbook opened this issue Jan 21, 2021 · 9 comments
Closed

Can't load sizes in Ackee v3 #217

productdevbook opened this issue Jan 21, 2021 · 9 comments
Labels
Milestone

Comments

@productdevbook
Copy link

Cannot return null for non-nullable field Size.id.
/index.js:31:15097
asyncFunctionResume@[native code]
[native code]
promiseReactionJobWithoutPromise@[native code]

@productdevbook productdevbook changed the title v3.0 null for non-nullable field v3.0 Cannot return null for non-nullable field Size.id. Jan 21, 2021
@BrookeDot
Copy link
Contributor

BrookeDot commented Jan 21, 2021

I'm also seeing this, for me it happens right after login. The Dashboard loads for a moment then the error appears. Here's the stack trace:

mongo    | {"t":{"$date":"2021-01-21T17:53:27.019+00:00"},"s":"I",  "c":"NETWORK",  "id":REMOVED,   "ctx":"conn15","msg":"Connection ended","attr":{"remote":"REMOVED","connectionId":15,"connectionCount":12}}
ackee    | [Ackee] › ✖  fatal     Error: Cannot return null for non-nullable field Size.id.
ackee    |     at completeValue (/srv/app/node_modules/graphql/execution/execute.js:561:13)
ackee    |     at resolveField (/srv/app/node_modules/graphql/execution/execute.js:474:19)
ackee    |     at executeFields (/srv/app/node_modules/graphql/execution/execute.js:294:18)
ackee    |     at collectAndExecuteSubfields (/srv/app/node_modules/graphql/execution/execute.js:749:10)
ackee    |     at completeObjectValue (/srv/app/node_modules/graphql/execution/execute.js:739:10)
ackee    |     at completeValue (/srv/app/node_modules/graphql/execution/execute.js:592:12)
ackee    |     at completeValue (/srv/app/node_modules/graphql/execution/execute.js:558:21)
ackee    |     at /srv/app/node_modules/graphql/execution/execute.js:626:25
ackee    |     at from (<anonymous>)
ackee    |     at completeListValue (/srv/app/node_modules/graphql/execution/execute.js:613:49)
ackee    |     at completeValue (/srv/app/node_modules/graphql/execution/execute.js:574:12)
ackee    |     at /srv/app/node_modules/graphql/execution/execute.js:471:16
ackee    |     at processTicksAndRejections (internal/process/task_queues.js:93:5)
ackee    |     at async Promise.all (index 0)
ackee    |     at async Promise.all (index 3)

Looks like something in GraphQL is failing.

I'm running Docker Composer in Ubuntu 20.04.01 on DigitalOcean:

@electerious
Copy link
Owner

electerious commented Jan 21, 2021

That's interesting. It doesn't seem to be an issue for the demo page, my personal installation and the vercel version. I'm currently looking into it. Help is welcome!

I'm open for suggestions in the Ackee Gitter chat: https://gitter.im/electerious-Ackee/community

@electerious electerious changed the title v3.0 Cannot return null for non-nullable field Size.id. Can't load sizes in Ackee v3 Jan 21, 2021
electerious added a commit that referenced this issue Jan 21, 2021
@electerious
Copy link
Owner

The good thing: Ackee keeps tracking even when seeing this error. It's just the UI that can't get some data.


It seems that Ackee can't query BROWSER_RESOLUTION, BROWSER_WIDTH and and BROWSER_HEIGHT for some records. This could be the case when a record has data it shouldn't have. I sadly can't test it as it doesn't happen on my installation.

There's now a temporary fix (untested) on the develop branch until I can investigate further. It can be installed using the Docker develop tag (use electerious/ackee:develop instead of electerious/ackee when using Docker)

Repository owner deleted a comment from productdevbook Jan 21, 2021
@BrookeDot
Copy link
Contributor

💥 the temporary fix worked! Thanks for the quick fix, I'll send some coffee your way.

As expected, I see 1x 0px for the one domain I was experience the problem on:

Screen Shot 2021-01-21 at 11 29 47 AM

@electerious
Copy link
Owner

@BrookeDot Thanks for the help and thanks for letting me know!

I've deployed the temporary fix on the master branch. It will be available in ~30min via Docker. I will take a closer look at the real issue this weekend!

@productdevbook
Copy link
Author

3.0.2 update fixed. Thank you

@electerious electerious added this to the v3.0.3 milestone Jan 23, 2021
@electerious
Copy link
Owner

electerious commented Jan 23, 2021

I've deployed a non temporary workaround on the develop branch. The tests are now covering the issue.

@BrookeDot Could you try the develop branch again to check if everything is still ok?

@BrookeDot
Copy link
Contributor

BrookeDot commented Jan 23, 2021

Looking good @electerious!

Screen Shot 2021-01-23 at 9 53 43 AM

Although, if possible a value like unknown or undefined may be better than 0x0 but not sure if that is a trivial change ;)

I still don't know how that value got in there, or if it makes sense to try to remove it. Now that there's not an error I'm not too concerned, but totally something to keep an eye on from my end to see if I get a spike on 0px x 0px results.

@BrookeDot
Copy link
Contributor

Now that I see the changelog I think we can just close this sounds like your proper fix prevents even logging of the invalid values.

Thanks again for all your work on this. I've updated to 3.0.3 and things are working great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants