I have 2 Items in level 51, the 又 ‘again’ kanji and vocabulary. Both of them are burned, which took 8 and 14 reviews.
That explains it. 22 reviews and the threshold in the script is 20. I’ve upped it to 25, which should still be fine. When starting a new level, users won’t see an error percentage until they’ve done at least 25 reviews when activating the Hide option.
Availabe in v1.4.4
Do you use the heatmap? The workload graph uses the same review cache. If not, the initial load of reviews can take a while, and retrieval of a lot of reviews does tend to jam from time to time (this is a known issue with WK’s API). A reload of the page should help (it will still need to load all the reviews), and subsequent use should be faster.
Unfortunately I can’t get it working. When I load WK or refresh the page with F5, I briefly see ‘Graph’ appearing at the top menu. But a second later, when the site is done loading, that menu ‘Graph’ disappears again.
I tried to move this script to the top, right after the OpenFramework script, but that doesn’t work either.
Any ideas?
BTW - when I click on ‘Graph’ in that one second it’s visible, the workload graph does open but not in a corrent position and it stays in this place on my screen when I scroll down.
If the Graph button disappears, it means you have the heatmap on the dashboard. You can find the workload graph by clicking the ‘stats’ icon at the top of it, next to the heatmap configuration icon.
That is the original intended location for the button btw, the Graph button at the top is only there for people who don’t have the heatmap installed - once the heatmap loads, the Workload Graph script repositions itself.
Yeah, this is current functionality. Someone already commented on the fact that the graph itself can’t be moved around, I think I put it on the ‘pending items’, but if not, I’ll add it now. Thanks for the reminder!
Ah perfect! Really cool to see the workload and how my sparetime has gone since I started with wk ![]()
Version 1.4.5 is out. The only update is the new version of the dependency on the review cache script to handle 304 errors from the API gracefully.
See also the post in the Heatmap thread.
I am having an issue after adding this, when I press the button to make the graph show it simply creates a square that says “Init…” inside of it and then nothing happens, looking at the console I can see:
Review Cache: Error fetching reviews status
status: 304
url: "https://api.wanikani.com/v2/reviews?updated_after=2023-01-29T20:38:40.970833Z"
fetch_error @ userscript.html?name…078-ff18241757e4:92
and after that
uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'data')
at stripFunction (userscript.html?name=WaniKani%2520Workload%2520Graph.user.js&id=93313ee8-5c7f-402e-9078-ff18241757e4:416:44)
at Array.forEach (<anonymous>)
at stripData (userscript.html?name=WaniKani%2520Workload%2520Graph.user.js&id=93313ee8-5c7f-402e-9078-ff18241757e4:424:17)
If you could take a look I’d appreciate it, if not I’ll give it a go tomorrow after work.
That 304 error is expected but does not have any I’ll effect. In hindsight I should have made 304s warnings
Something is definitely going wrong with the workload graph, but the 304 error should be fine
I’ll take a look. I didn’t do anything but update the review cache version - it looks like a nullpointer in the workload graph script when there is no data.
edit: nearest I can tell is that it found a review on a non existing item. The problem might resolve if you clear the Open Framework’s list of items from your indexedDB and force it to reload. In the meantime I’ll update the script to handle this situation, because even though it shouldn’t be possible, the script shouldn’t die on it.
Version 1.4.6 is out. Added extra code to prevent NullPointer issues. Hopefully this fixes the issue for @Feconiz
Note: if this is in fact the issue, there should be a warning logged in the console that the Workload Graph is ignoring a number of reviews for unknown items.
Fixed, thank you!
Version 1.4.7 is out - hopefully this is a quiet version update as I think most people using this script also use the heatmap. But for those that don’t, review tracking review cache is now used here as well.
Hello! When I try to load the graph, it doesn’t load anything except for a transparent picture with a few letters on it:

It’s definitely got nothing to do with the heatmap (at least I think so), as I’ve been using it since mid December last year, so I think it should’ve logged enough reviews by now.
(Also, the buttons are a bit messed up lol)
Here is what the console says:
Successfully compiled asm.js code (total compilation time 20ms) es-module-shims-b1a766ae18864aaabc0b984bb7c45eb3e6f47293fdf881f8fe2d1577a7fe3adb.js
achievements: [0,0,0,0] WaniKani-LevelUP-Celebrator.user.js:425:10
checkMilestones() returning null WaniKani-LevelUP-Celebrator.user.js:434:11
injected: keepAlive: got message
Object { messageId: "ltg7oy0z.a99", ack: true, method: "keepAlive" }
content.js:8:1240
downloadable font: Glyph bbox was incorrect (glyph ids 33 55 62 81 82 83 84 87 88 89 90 112 119 120 123 139 159 162 164 166 178 184 185 217 218 272 273 274 275 279 281 284 290 291 292 309 310 319 321 323 326 329 330 331 332 333 334 339 341 347 349 351 352 353 354 357 358 361 366 367 370 371 414 431 436 444 445 458 460 464 465 483 505 508 511 514 516 517 518 520 521 538 539 546 568 574 579 580 585 586 594 596 599 602 603 616 618 622 627 629 630 633 634 638 643 645 651 654 665 675 685 686 688 691) (font-family: "FontAwesome" style:normal weight:400 stretch:100 src index:1) source: https://assets.wanikani.com/assets/fontawesome-webfont-25d09ed0277a1d977d735f1051078c759d4ede6258d764b1601cd3a45574e81e.woff2
[bugsnag] Loaded! app.bundle.js:2:43024
Einige Cookies verwenden das empfohlene "SameSite"-Attribut inkorrekt. 8
Das Cookie "undefined_message_status" verfügt über keinen gültigen Wert für das "SameSite"-Attribut. Bald werden Cookies ohne das "SameSite"-Attribut oder mit einem ungültigen Wert dafür als "Lax" behandelt. Dadurch wird das Cookie nicht länger an Kontexte gesendet, die zu einem Drittanbieter gehören. Falls Ihre Anwendung das Cookie in diesen Kontexten benötigt, fügen Sie bitte das Attribut "SameSite=None" zu ihm hinzu. Weitere Informationen zum "SameSite"-Attribut finden Sie unter https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite. application-a67bfce1ed601f06e5ccd87fbd742331085c1ca54782b29d9339d018f0459d0b.js:4:18798
Cookie "fcuid" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Cookie "fccid" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Cookie "fcaid" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Cookie "frontChatChannelToken" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://sessions.bugsnag.com/. (Grund: CORS-Anfrage schlug fehl). Statuscode: (null).
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("style-src"). content.js:71:427
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline festgestellt ("style-src"). Ein CSP-Bericht wird gesendet. content.js:71:427
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). content.js:60:457
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline festgestellt ("script-src"). Ein CSP-Bericht wird gesendet. content.js:60:457
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). content.js:60:457
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline festgestellt ("script-src"). Ein CSP-Bericht wird gesendet. content.js:60:457
Diese Website verwendet anscheinend einen scroll-verknüpften Positionierungseffekt. Dies könnte mit asynchronem Verschieben (Panning) schlecht zusammenspielen; siehe https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html für weitere Details und um an der Diskussion über damit verbundene Werkzeuge und Funktionen teilzunehmen. dashboard
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("style-src"). content.js:71:427
Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). 2 content.js:60:457
[FrontChat][Front] FrontChat Version: 7.10.2 app.bundle.js:2:32052
Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://js-agent.newrelic.com/nr-spa-1.252.1.min.js. (Grund: CORS-Anfrage schlug fehl). Statuscode: (null).
Keine der "sha512"-Hashes im "integrity"-Attribut stimmen mit dem Inhalt der Subressource überein. Der berechnete Hash ist "z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==". dashboard
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: A problem occurred when starting up session manager. This page will not start or extend any session. dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
E https://www.wanikani.com/dashboard:7
api https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading runtime APIs failed... dashboard:7:12474
Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://js-agent.newrelic.com/nr-spa-1.252.1.min.js. (Grund: CORS-Anfrage schlug fehl). Statuscode: (null).
Keine der "sha512"-Hashes im "integrity"-Attribut stimmen mit dem Inhalt der Subressource überein. Der berechnete Hash ist "z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==". dashboard
New Relic: Downloading and initializing page_view_event failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing page_view_timing failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing metrics failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing jserrors failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing ajax failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing session_trace failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing page_action failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
New Relic: Downloading and initializing spa failed... dashboard:7:12474
ChunkLoadError: Loading chunk 111 failed.
(error: https://js-agent.newrelic.com/nr-spa-1.252.1.min.js)
j https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
e https://www.wanikani.com/dashboard:7
a https://www.wanikani.com/dashboard:7
dashboard:7:12515
Review Cache: Error fetching reviews
Object { status: 304, url: "https://api.wanikani.com/v2/reviews?updated_after=2024-03-06T14:30:29.315000Z" }
WaniKani-Workload-Graph.user.js:182:17
Cookie "fcuid" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Cookie "fccid" wird bald abgelehnt, da es fremd ist und nicht das "Partitioned"-Attribut besitzt. app.bundle.js:2:567892
Ably is attempting to establish a connection
Object { version: "7.10.2", companyId: 914, channelNamespace: "tim:914", region: "us-west-1", namespace: "", appId: "b8c343a48b22494ebdea5e98cf6296ac94ac2a82e0cbd1422303229dd3d7aeda", conversationId: "9a93d4f9-332c-4ece-9130-d5d806db5552", publicConversationId: "cnv_f8djz7x", initTimestamp: 1709735852368, shouldShowChatWindow: false, … }
app.bundle.js:2:32052
Ably connection has been established
Object { version: "7.10.2", companyId: 914, channelNamespace: "tim:914", region: "us-west-1", namespace: "", appId: "b8c343a48b22494ebdea5e98cf6296ac94ac2a82e0cbd1422303229dd3d7aeda", conversationId: "9a93d4f9-332c-4ece-9130-d5d806db5552", publicConversationId: "cnv_f8djz7x", initTimestamp: 1709735852368, shouldShowChatWindow: false, … }
app.bundle.js:2:32052
Review Cache: Error fetching reviews
Object { status: 304, url: "https://api.wanikani.com/v2/reviews?updated_after=2024-03-06T14:30:29.315000Z" }
Wanikani-Heatmap.user.js:183:17
Review Cache: Error fetching reviews
Object { status: 304, url: "https://api.wanikani.com/v2/reviews?updated_after=2024-03-06T14:30:29.315000Z" }
WaniKani-Workload-Graph.user.js:182:17
Uncaught (in promise) TypeError: reviewDay is undefined
stripFunction moz-extension://628b4396-402c-4844-a78c-86b41cd2773c/userscripts/WaniKani-Workload-Graph.user.js?id=40624eaa-263c-42db-98fe-f4b8676b2bd6:498
stripData moz-extension://628b4396-402c-4844-a78c-86b41cd2773c/userscripts/WaniKani-Workload-Graph.user.js?id=40624eaa-263c-42db-98fe-f4b8676b2bd6:522
dashboard line 9 > injectedScript:498:13
injected: keepAlive: got message
Object { messageId: "ltg7xyhf.5zh", ack: true, method: "keepAlive" }
content.js:8:1240
Source-Map-Fehler: Error: NetworkError when attempting to fetch resource.
Ressourcen-Adresse: moz-extension://628b4396-402c-4844-a78c-86b41cd2773c/userscripts/Shin-WaniKani-Leech-Trainer.user.js?id=9ef77814-855d-4795-8958-ca6a48f74691
Source-Map-Adresse: wanakana.min.js.map
```
Thanks for reporting and adding console output! First glance, this:
is my lead suspect for the issue. That kind of thing leads to a nullpointer and script failure - I’ll take a look.
Thanks a lot! I remembered that I should add the console output as well after I posted because everyone always asks for it, so I thought you would probably need it as well ![]()
I found an interesting edge case, but it doesn’t give the exact same error in my console. I’ve published version 1.4.12 anyway, because it’s still an error generating situation. Could you update to this version and let me know if this changes anything?




