codetheweb / MMM-AnyList

Magic Mirror module to display AnyList data
11 stars 4 forks source link

Module not refreshing after awhile #39

Open sTo0z opened 7 months ago

sTo0z commented 7 months ago

So I had everything working 100% before the authentication issue that appeared recently. I tried to update the module after an auth fix was released, but received odd warnings and errors and things.

Basically when the module loaded it would load my list data correctly, and if I made changes shortly after restart, things would update properly. However after an unknown amount of time, the list would no longer automatically update/refresh. Figured it was the wonky update process I did since my setup was quite old.

So I just set up MM again from scratch on latest Raspian. Installed MMM-AnyList without any errors or warnings this time. And once again my list will load initially, but after some unknown amount of time the list will stop updating/refreshing.

I am not the most skilled at working through log files, so I'm not exactly sure how to pin point anything that might help, this is the only entry I found.

[13.11.2023 19:16.52.749] [ERROR] (node:1971) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized) at EventEmitter.<anonymous> (/home/pi/MagicMirror/modules/MMM-AnyList/node_modules/anylist/node_modules/got/dist/source/as-promise.js:118:31) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) (Use 'electron --trace-warnings ...' to show where the warning was created) [13.11.2023 19:16.52.750] [ERROR] (node:1971) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag '--unhandled-rejections=strict' (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 301)

If anyone has any further instructions on how to check something else to be more helpful, I'm all for it.

tgullii commented 7 months ago

@sTo0z I have the same experience as you. Initially the list loads and updates, but after some time it stops updating. I'm wondering if this is the same issue as reported in #26 or if this is new behaviour.

codetheweb commented 7 months ago

hmm, cc @kevdliu, did you notice anything like this when testing? The refresh logic in anylist looks good to me

kevdliu commented 7 months ago

I've never encountered that before, although I don't use the websocket in my use case. Let me leave the websocket running and see if it throws the same exception.

kevdliu commented 7 months ago

I wasn't able to repro myself but made some tweaks and added more logging. @codetheweb could you bump the anylist dependency to 0.8.1. @sTo0z if issue still occurs with the new version please post the logs here.

Gabian34 commented 7 months ago

Hi, same experience also. Initially the list loads and updates, but after some time no updating...

sTo0z commented 7 months ago

@kevdliu Just making sure I understand, we’re still waiting for something to happen here before I can go test, right?

kevdliu commented 7 months ago

@kevdliu Just making sure I understand, we’re still waiting for something to happen here before I can go test, right?

Yeah @codetheweb would need to update the magic mirror module to use the new version of the anylist library

ccnadude commented 7 months ago

I'm seeing the same issue. Everything works as expected for a while, but then it starts falling to update. Restarting the mirror gets things back to normal again for while, but then it will start failing to update again.

The following logs were immediately after crossing off an item. (I reinstalled the Anylist module a couple of weeks ago.)

0|MagicMirror | [27.11.2023 08:17.11.935] [ERROR] (node:838) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized) 0|MagicMirror | at EventEmitter. (/home/rich/MagicMirror/modules/MMM-AnyList/node_modules/anylist/node_modules/got/dist/source/as-promise.js:118:31) 0|MagicMirror | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 0|MagicMirror | [27.11.2023 08:17.11.938] [ERROR] (node:838) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3) 0|MagicMirror | [27.11.2023 08:17.11.945] [ERROR] (node:838) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized) 0|MagicMirror | at EventEmitter. (/home/rich/MagicMirror/modules/MMM-AnyList/node_modules/anylist/node_modules/got/dist/source/as-promise.js:118:31) 0|MagicMirror | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 0|MagicMirror | [27.11.2023 08:17.11.946] [ERROR] (node:838) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4) 0|MagicMirror | [27.11.2023 08:17.11.980] [ERROR] (node:838) UnhandledPromiseRejectionWarning: HTTPError: Response code 401 (Unauthorized) 0|MagicMirror | at EventEmitter. (/home/rich/MagicMirror/modules/MMM-AnyList/node_modules/anylist/node_modules/got/dist/source/as-promise.js:118:31) 0|MagicMirror | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 0|MagicMirror | [27.11.2023 08:17.11.980] [ERROR] (node:838) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)

roccamorice commented 4 months ago

I am also experiencing the same issue where the module stops updating. I resolve the issue by refreshing the page (I use the Alexa controls - and just ask Alexa to refresh) whenever I make a change and don't see it getting updated on MMM-AnyList. Is there a way to force just the module to refresh every X minutes? I don't believe a refresh/update/fetch was added to the module configuration (since I tried adding all of them but they didn't seem to do anything).

sTo0z commented 2 months ago

@kevdliu Sorry to tag you again, it's just a shame this was abandoned. A major value add to my home setup has been crippled ever since this issue popped up.

Is it possible that I can fork something and make the changes myself and install to MM2? I would attempt a pull request but I imagine that would also get ignored.

Is there any other path forward that you can see here?

Thank you again, and I won't bug you again after this.

kevdliu commented 2 months ago

To update the version of the anylist dependency for this module, you just have to update the anylist field under dependencies in package.json. Right now it's ^0.5.2, so you can change that to ^0.8.3. You may have to run npm install again after changing the file. I don't use magic mirror myself so I'm not sure if there are other additional steps required.

roccamorice commented 2 months ago

I made the change that @kevdliu suggested and did an npm install and it seems to be working well. It has been running for about 16 hours without any issues.. thanks for the suggestion.

sTo0z commented 2 months ago

Ah duh, that makes WAY more sense than forking the project.. Thank you @kevdliu.

EDIT: After some days, seems to be working totally fine again for me as well.

ccnadude commented 1 month ago

To update the version of the anylist dependency for this module, you just have to update the anylist field under dependencies in package.json. Right now it's ^0.5.2, so you can change that to ^0.8.3. You may have to run npm install again after changing the file. I don't use magic mirror myself so I'm not sure if there are other additional steps required.

THANK YOU!!!