Ghost v4 Fresh Install - 401 Unauthorized /members/api/members

Continuing/Moving my Topic Reply from Upgrade to Ghost v4, but a lot of 503 error:

I’m creating a new Topic for this issue because my post there relates not to an upgrade to v4, but to a v4 fresh install. (When I had successfully Upgraded the site from v3 to v4, at first everything worked – that is until I stopped the freshly updated instance, when restarting it stopped working as others have also found.)

Other than this error (below), so far this fresh Ghost v4 install is working, even after stopping and restarting this fresh Ghost instance the site is behaving properly.

Here is the post:

OK, fresh, new install of Ghost 4 on new subdomain, then restarted the instance and cleared all the caches (including Cloudflare), still get this error (and only after I refresh the page, not upon first arrival at the page):

And here is the Stack Trace:

a [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:281553](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) sessionData [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:282034](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) e/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:286075](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) c [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131397](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) u/o._invoke</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131151](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131756](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) b [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145267](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) i [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145471](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) (Async: promise callback) b [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145338](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) i [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145471](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145530](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145410](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) e/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:306188](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) c [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131397](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) u/o._invoke</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131151](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131756](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) b [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145267](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) i [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145471](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145530](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145410](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) mr</<.value</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:306573](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) e/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:302959](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) c [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131397](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) u/o._invoke</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131151](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131756](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) b [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145267](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) i [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145471](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145530](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145410](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) mr</<.value</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:303454](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) e/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:302018](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) c [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131397](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) u/o._invoke</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131151](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:131756](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) b [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145267](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) i [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145471](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145530](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) v/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:145410](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) mr</<.value</< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:302747](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) value [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:300549](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) rl [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:92165](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) pu [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:110061](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) n.unstable_runWithPriority [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:129375](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Ua [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:53787](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) su [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:106535](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Gl [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:102674](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) $l [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:99243](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Iu [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:120698](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Uu/< [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:121943](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Zl [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:102822](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) Uu [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:121928](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) n.render [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:124912](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:311147](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:311273](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) t [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:110](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:2575](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) t [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:110](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:903](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:3:912](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) t [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:1:110](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:1:944](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) t [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:1:110](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:1:902](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js) <anonymous> [https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js:1:911](https://unpkg.com/@tryghost/portal@~1.0.0/umd/portal.min.js)

That request is made by Portal, and used to see who you are :slight_smile: Getting a 401 just means you’re not signed in.

I just successfully logged in, and do still see that error.

Is that new in v4, @vikaspotluri123 ? I never saw that error come up in v3…

I noticed in v4 the removal of the toggle to enable/disable Members that was in v3:

I miss that.

See this other post. Others agree: Ghost 4.0 - Really Terrible for Personal Blog

@denvergeeks the 401 response is expected with current implementation. We are looking into other ways of handling this request, but for current version: “it’s not a bug, it’s a feature” :slight_smile:

1-console-error failed-to-load unauthorized

Like a tiny, evil pair of eyes, staring me down … taunting me in the dark of night …

1 Like

I’m having the same issue on fresh v4 install using digital ocean marketplace. I did very little and getting 401 unauthorized on the apiv2 and api/member, then api/send-magic-link get attempts.

No idea what to do.

@luccast if you’re getting 401s for more than /members/api/member/ then you’re describing a different problem. Please open a new topic and include as many details as possible

I think the API v2 is deprecated in Ghost 4.0 and the themes built for API v2 will not function properly with Ghost 4.x.x

You will have to scan the theme via https://gscan.ghost.org/ and fix the issues to get it working on Ghost 4.x.x

Lol… Me too. But I also kind of like the taunting.