Read the statement by Michael Teeuw here.
MMM-Strava ID Unauthorized
- 
 @mumblebaj I did attempt a reinstall of the MMM-Strava module but can certainly do it again. Is best method to rm-rf the MMM-Strava modiue folder and then redo the steps listed in the Github for MMM-Strava? 
- 
 @BerkSmash1984 u can edit your posts… don’t have to leave pad text, wrong info, bad tag… 
- 
 @sdetweil my bad, thanks! I corrected my post 
- 
 @BerkSmash1984 not bad, maybe you didn’t know. lol 
- 
 @mumblebaj just removed the MMM-Strava module and installed from scratch. Still seeing the same issue. Would you by chance be able to do any direct troubleshooting with me? I am on discord in the MM channel and can dm you in there, if you have any free time at any point. Note: when I click the authorize button a the Stava auth site after being redirected there from my MM on the RPI, in Electron, I see this generated: [03.05.2022 10:13.13.537] [ERROR] Whoops! There was an uncaught exception… 
 [03.05.2022 10:13.13.538] [ERROR] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
 at new NodeError (node:internal/errors:371:5)
 at ServerResponse.setHeader (node:_http_outgoing:576:11)
 at ServerResponse.header (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:776:10)
 at ServerResponse.location (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:893:15)
 at ServerResponse.redirect (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:931:18)
 at /home/jberk1984/MagicMirror/modules/MMM-Strava/node_helper.js:185:10
 at /home/jberk1984/MagicMirror/modules/MMM-Strava/node_helper.js:451:5
 at node:fs:2122:7
 at FSReqCallback.oncomplete (node:fs:188:23) {
 code: ‘ERR_HTTP_HEADERS_SENT’So the issue seems to be whatever is causing that. I never do see the token.js being generated after clicking the authorize button. My client and secret ID are correct in my config.js file (can’t tell you how many times I have checked to make sure) 
- 
 @BerkSmash1984 said in MMM-Strava ID Unauthorized: Cannot set headers after they are sent to the client so, this error is typically caused by some code doing two sends for an incoming request the module sets up a little server to receive and does a redirect response… but this could be an async problem 
 start sending one response, continue while it runs and then fall into another send… oops…I only made a cursory look at the code. i have done similar things in some of my coding here and on other platforms. I don’t ‘see’ it, but there is a library in there too this says it is handling a callback on request complete, line 185 is in the handling of the token auth . but the stravea lib is calling back into the function (function (err, payload, limits) at line 176 
 so the node_helper called strava, who called us back at the function on line 185 ( (err, data) => { (err, data) => { ) which does a redirect… WHILE the strava request to get the auth token handler is still active…strava.oauth.getToken(authCode, function (err, payload, limits) { if (err) { console.error(err); res.redirect(`/${self.name}/auth/?error=${err}`); return; } // Store tokens self.saveToken(clientId, payload.body, (err, data) => { // line 185 // redirect route res.redirect(`/${self.name}/auth/?status=success`); }); });line 451, is in the end of the saveFile() function, supposedly to save the tokens.json saveToken: function (clientId, token, cb) { var self = this; this.readTokens(); // No token for clientId - delete existing if (clientId in this.tokens && !token) { delete this.tokens[clientId]; } // No clientId in tokens - create stub if (!(clientId in this.tokens) && token) { this.tokens[clientId] = {}; } // Add token for client if (token) { this.tokens[clientId].token = token; } // Save tokens to file var json = JSON.stringify(this.tokens, null, 2); fs.writeFile(this.tokensFile, json, "utf8", function (error) { if (error && cb) { cb(error); } if (cb) { cb(null, self.tokens); // line 451 --- this calls back into the ( (err, data) =>) function } })at FSReqCallback.oncomplete (node:fs:188:23) { 
- 
 @BerkSmash1984 did you ever fixed this issue? I just had the same issue, and it turns out it was a permissions issue in the MagicMirror folder, I changed the permissions of the folder and re-authorized, it’s now working. Best regards 
 
 
 
 
 

