MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-MealieMenu Fetch Error

    Scheduled Pinned Locked Moved Solved Troubleshooting
    30 Posts 3 Posters 9.0k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • zanixZ Offline
      zanix
      last edited by

      @sdetweil said in MMM-MealieMenu Fetch Error:

      @WallysWellies I am a mealie user too.

      code looks good. will have to setup and test.

      it does get the data frequently
      60 seconds by default…

      I should probably set the default to something higher. I had it set to 60 seconds while I was developing it.

      @sdetweil said in MMM-MealieMenu Fetch Error:

      @WallysWellies ok… I’ll watch it running here at 15 min updates…

      well, I found it…

      in the node helper he sets a flag, to say request is active

      if the flag is set when the request comes from the module side
      he just returns… does nothing.

      on error he does not clear the flag
      (bad network, host, authorization… places where there is no recovery
      those make sense…)

            .catch((error) => {   //<--- had and error here ... 
              this.sendSocketNotification("MEALIE_ERROR", {
                error: "FETCH_ERROR",
                details: error,
                identifier: config.identifier
              });
            })
            .finally(() => {
              this.outstandingRequest = false;   // < --- only clears flag on success
            });
      

      one could examine the error and reset if its a potentially recoverable error…

      I thought finally() runs even after a catch(), dangit.

      @WallysWellies said in MMM-MealieMenu Fetch Error:

      @sdetweil I’m looking at the node_helper.js file and reading your comments and I’m a little unsure what you are suggesting.

      Are you saying I could edit this code block:

      .catch((error) => {
              this.sendSocketNotification("MEALIE_ERROR", {
                error: "FETCH_ERROR",
                details: error,
                identifier: config.identifier
              });
            })
      

      to this:

      .catch((error) => {
              this.outstandingRequest = false; 
              this.sendSocketNotification("MEALIE_ERROR", {
                error: "FETCH_ERROR",
                details: error,
                identifier: config.identifier
              });
            })
      

      ?

      Sorry, I can fumble my way around code but I’m far from a programmer!

      I will get this fix added and set the default updateInterval to something a bit more sane soon. Thanks to all for troubleshooting!

      W 1 Reply Last reply Reply Quote 0
      • W Offline
        WallysWellies @zanix
        last edited by

        @zanix Thanks for your input :)

        I made the change after posting and it certainly doesn’t break anything but I have been playing with some other modules too so have restarted the software several times meaning I haven’t given it a chance to error but based on my understanding it probably shouldn’t anymore. I don’t know why it was in the first place though - the Mealie container is on the Pi so it’s using localhost to retrieve data. Who knows.

        I did make one other change because I wanted to see the next week of meals, rather than the remaining meals this week. So I changed this line:

        const startOfWeek = this.getFirstDayOfWeek(config.weekStartsOnMonday);
        

        to this:

        const startOfWeek = moment();
        

        It’s pretty crude but if you’re taking suggestions it might be nice to have the option to show x number of days in the future rather than until the end of the week. I don’t believe that’s currently possible natively?

        Thanks for the module though, it’s great!

        zanixZ 1 Reply Last reply Reply Quote 0
        • zanixZ Offline
          zanix @WallysWellies
          last edited by zanix

          @WallysWellies said in MMM-MealieMenu Fetch Error:

          @zanix Thanks for your input :)

          I made the change after posting and it certainly doesn’t break anything but I have been playing with some other modules too so have restarted the software several times meaning I haven’t given it a chance to error but based on my understanding it probably shouldn’t anymore. I don’t know why it was in the first place though - the Mealie container is on the Pi so it’s using localhost to retrieve data. Who knows.

          Hopefully that fixes the issue, let me know otherwise.

          I did make one other change because I wanted to see the next week of meals, rather than the remaining meals this week. So I changed this line:

          const startOfWeek = this.getFirstDayOfWeek(config.weekStartsOnMonday);
          

          to this:

          const startOfWeek = moment();
          

          It’s pretty crude but if you’re taking suggestions it might be nice to have the option to show x number of days in the future rather than until the end of the week. I don’t believe that’s currently possible natively?

          Before now no, but I did just add the fetch fix, updateInterval default to 1 hour, and some additional meal entry options in version 1.5.0.

          The options are:

          • currentWeek: Only show meals for the current week.
          • dayLimit: How many days will be displayed after today.
          • entryLimit: How many entries from future days should be shown in total.

          Now you can just set currentWeek to false to get the same effect.

          Thanks for the module though, it’s great!

          I appreciate that, glad it’s useful!

          1 Reply Last reply Reply Quote 0
          • W Offline
            WallysWellies
            last edited by

            @zanix The mealie module has been in an error since yesterday and I wonder if you might be able to help me troubleshoot?

            I have run the following command:

            tail -100 .pm2/logs/mm-error.log
            

            And at the end I see the following:

            [2024-05-31 16:47:51.577] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 17:47:51.580] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 18:47:51.581] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 19:47:51.590] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 20:47:51.571] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 21:47:51.575] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 22:47:51.582] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-05-31 23:47:51.574] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 00:47:51.604] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 01:47:51.601] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 02:47:51.576] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 03:47:51.576] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 04:47:51.577] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 05:47:51.575] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 06:47:51.580] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 07:47:51.571] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 08:47:51.577] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 09:47:51.572] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 10:47:51.577] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 11:47:51.576] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 12:47:51.568] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            [2024-06-01 13:47:51.580] [ERROR] [MMM-MealieMenu] Fetch error: "Unauthorized"
            

            I have confirmed that the correct username / password is in my config.js file (and it has worked previously) - I can login via my laptop using http://raspberrypi:9925/ using these credentials.

            The config.js file is using the following line for the connection:

            host: "http://localhost:9925"
            

            I use browser / terminal / SSH etc. to access the Pi but if necessary I can connect a keyboard / mouse if that would aid in narrowing down the issue.

            Do you have any thoughts? I can probably just restart the mirror service but I haven’t yet in case that deletes any valuable information. Any advice would be appreciated.

            1 Reply Last reply Reply Quote 0
            • W Offline
              WallysWellies
              last edited by

              • I have found the part of Mealie that allows creation of an API key so I could switch to that method for authentication.
              • I also see I am a couple of versions behind the Mealie master branch (I use version 1.5.1 - current version is 1.7.0). That looks drastic but it’s only 2 releases behind.

              I don’t think either of these things are causing my issue necessarily but it’s a couple of things I can change soon.

              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @WallysWellies
                last edited by

                @WallysWellies are you using watchtower to keep. your containers up to date?

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                W 1 Reply Last reply Reply Quote 0
                • W Offline
                  WallysWellies @sdetweil
                  last edited by

                  @sdetweil Mealie is the first time I’ve used docker so it’s totally manual. I’ve never tried to update it - it was setup within the last couple of months.

                  I was planning to do the update based on the Mealie docs but I could look into watchtower.

                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdetweil @WallysWellies
                    last edited by

                    @WallysWellies i have watchtower maintain all my docker stacks

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    W 1 Reply Last reply Reply Quote 0
                    • W Offline
                      WallysWellies @sdetweil
                      last edited by

                      @sdetweil I’ll look into it, thanks.

                      1 Reply Last reply Reply Quote 0
                      • zanixZ Offline
                        zanix
                        last edited by zanix

                        I normally use an API key but I just tried my username/password and it worked. I’m on Mealie 1.7.0.
                        Go ahead and restart MM and see if that works.

                        Are you on the latest MMM-MealieMenu (1.5.0)? I added an additional log when the auth token fetch fails.

                        1 Reply Last reply Reply Quote 0
                        • zanixZ Offline
                          zanix
                          last edited by

                          I just realized this error occurs when the meal plan is fetched. I wonder if the auth token is expiring.

                          W 1 Reply Last reply Reply Quote 0
                          • W Offline
                            WallysWellies @zanix
                            last edited by

                            @zanix Restarting the MM service fixed the issue with no additional steps so it may well be an expiring token or something.

                            I have updated the Mealie container so I am now on v1.7.0 and switched to using the API key for auth. I have also checked and I am using the current version of your module, v1.5.0.

                            I’ll report back if anything interesting happens. Thanks again for your advice.

                            zanixZ 1 Reply Last reply Reply Quote 0
                            • zanixZ Offline
                              zanix @WallysWellies
                              last edited by

                              @WallysWellies Thanks!
                              I think the token does expire. I just checked the token on my instance and it expires 1 month from now.
                              I will work on fixing that soon.

                              1 Reply Last reply Reply Quote 0
                              • zanixZ Offline
                                zanix
                                last edited by

                                @WallysWellies I just updated the module to account for token expiration.
                                It took me a bit to test since I needed to let the token expire to make sure it worked.

                                W 3 Replies Last reply Reply Quote 1
                                • W Offline
                                  WallysWellies @zanix
                                  last edited by

                                  @zanix that’s dedication, thanks!

                                  I see the update notification so I’ll get it updated tonight. Cheers.

                                  1 Reply Last reply Reply Quote 0
                                  • W Offline
                                    WallysWellies @zanix
                                    last edited by

                                    @zanix Hi Zanix. Just updated the module and all meal entries now seem to use the default image. I updated the docker image in case that was the problem but they’re all still showing the default orange image.

                                    Possible bug introduced in the latest release?

                                    1 Reply Last reply Reply Quote 0
                                    • W Offline
                                      WallysWellies @zanix
                                      last edited by

                                      @zanix Sorry, ignore me - it seems to only be using default images on my laptop. On the actual screen it’s showing the images. Maybe it’s something to do with resolution or something. Apologies.

                                      zanixZ 1 Reply Last reply Reply Quote 0
                                      • zanixZ Offline
                                        zanix @WallysWellies
                                        last edited by zanix

                                        @WallysWellies I opened MM on my desktop (MM runs on a Pi5) and I can see the meal images.
                                        The default image only displays when the meal image cannot load. Maybe the URL of the images isn’t accessible on your laptop?

                                        W 1 Reply Last reply Reply Quote 0
                                        • W Offline
                                          WallysWellies @zanix
                                          last edited by

                                          @zanix You are correct. Looking in the console it’s trying to load from localhost. I’m not greatly fussed but one day I might look into where I can fix that.

                                          Cheers!

                                          zanixZ 1 Reply Last reply Reply Quote 0
                                          • zanixZ Offline
                                            zanix @WallysWellies
                                            last edited by

                                            @WallysWellies Are you running MM and Mealie on the same computer? And do you have the MMM-Mealie URL set as localhost?
                                            If so, try changing the MMM-Mealie URL to the IP address of the computer it’s running on.

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 2 / 2
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy