First login after creating first user - Error while refreshing user info:

Deployed via Docker Compose

I cannot login after creating my first user. I can successfully add a user, or at least a row looks added to the users table. I made sure I have both a time zone and language set in config.yaml.

"id","name","username","password","email","status","avatar_provider","avatar_file_id","issuer","subject","email_reminders_enabled","discoverable_by_name","discoverable_by_email","overdue_tasks_reminders_enabled","overdue_tasks_reminders_time","default_project_id","week_start","language","timezone","deletion_scheduled_at","deletion_last_reminder_sent","frontend_settings","export_file_id","created","updated"
"1","","cmartin616","[mypasswordhash]","[myemail]",0,"initials","0","local","",False,False,False,True,"9:00","1",0,"en-US","EST",NULL,NULL,"null","0","2023-09-02 18:08:16","2023-09-02 18:08:16"

I attempt to login and I get the error “Error while refreshing user info:” The network tools shows two requests:

  • login - returns a token
  • user - returns this user object:
{
    "id": 1,
    "name": "Chris",
    "username": "cmartin616",
    "created": "2023-09-02T13:08:16-05:00",
    "updated": "2023-09-02T13:08:16-05:00",
    "settings": {
        "name": "Chris",
        "email_reminders_enabled": false,
        "discoverable_by_name": false,
        "discoverable_by_email": false,
        "overdue_tasks_reminders_enabled": true,
        "overdue_tasks_reminders_time": "9:00",
        "default_project_id": 1,
        "week_start": 0,
        "language": "en-US",
        "timezone": "EST",
        "frontend_settings": null
    },
    "deletion_scheduled_at": "0001-01-01T00:00:00Z",
    "is_local_user": true
}

There is a name value in the response because I added it via DB to check if the missing value was causing an issue. It was blank before but had the same error.

I have the following nginx config:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name tasks.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app 192.168.1.111;
        set $upstream_port 5080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

      location ~* ^/(api|dav|\.well-known)/ {
         include /config/nginx/proxy.conf;
         include /config/nginx/resolver.conf;
         set $upstream_app 192.168.1.111;
         set $upstream_port 3456;
         set $upstream_proto http;
         proxy_pass $upstream_proto://$upstream_app:$upstream_port;

     }
}

No errors are being reported in the database, API or frontend containers. Any help would be appreciated!

Do you see any errors in the browser js console? If not, can you switch to unstable (if briefly) and check again?

Thank you for the quick reply!

No errors in the console. In fact, I don’t even see any outbound requests going out before it returns the UI error. Repeated clicks of login also do not send any requests.

I updated to unstable and I was logged in successfully. Something in this build looks to have resolved the issue. Is there a path from unstable back to latest once the current state of the unstable build is tagged latest?

Thanks again!

Actually, I have a new issue related to this now. I created some tasks and decided to enable the mailer. I switched the config to enable it and set all my values. Restarted and I see a blank screen with these errors in the console:

(index):45 Uncaught SyntaxError: Unexpected end of input (at (index):45:1)
main.ts:39 Uncaught TypeError: Cannot read properties of undefined (reading 'endsWith')
    at main.ts:39:20

Error 1 refers to the closing script tag:

<script>
	//
	// This variable points the frontend to the api.
	// It has to be the full url, including the last /api/v1 part and port.
	// You can change this if your api is not reachable on the same port as the frontend.
	window.API_URL = '/api/v1'
	// Enable error tracking with sentry. If this is set to true, will send anonymized data to 
	// our sentry instance to notify us of potential problems.
	window.SENTRY_ENABLED = false
	window.SENTRY_DSN = ''
	// If enabled, allows the user to nest projects infinitely, instead of the default 2 levels.
	// This setting might change in the future or be removed completely.
	window.PROJECT_INFINITE_NESTING_ENABLED = 'false'
	// Allow changing the logo and other icons based on various occasions throughout the year.
	window.ALLOW_ICON_CHANGES = true
	// Allow using a custom logo via external URL.
	window.CUSTOM_LOGO_URL = 
</script>

Error 2:

// Make sure the api url does not contain a / at the end
if (window.API_URL.endsWith('/')) {
	window.API_URL = window.API_URL.slice(0, -1)
}

I thought it might have been an issue with my config so I removed my changes, tore down, re-deployed the containers and I’m still in this blank state.

It looks like the domain of my API_URL might not be set but I’m not sure how this could have gotten lost. [my-domain]/api/v1/info still loads appropriately and it is set in my config:

# The URL of the frontend, used to send password reset emails.
  frontendurl: "https://tasks.[mydomain]"

This was a bug. I’ve just pushed a fix in 9cf8696b84 - please check again with the next unstable build (should be ready in ~30min).

Releases are cut from unstable when there are enough changes to be worth a release, switching from unstable to the new release is as easy as switching tags and pulling.

Switching back from unstable to the last release might work, but it’s not guaranteed to work.

Thank you. I look to be all set now.