Password Reset Mail won't send #1590

Closed
opened 2023-08-18 12:11:48 +00:00 by episode_grinch227 · 1 comment

Description

Issue

I cannot send password reset mails. Neither from command line nor from web app. Other emails, like via the testmail command or mentioning in comments via @username, are sent promptly and correctly. The mailer system is functioning.

Logs

Requesting results in the following log output:

echo recover.go:113 [PANIC RECOVER] reflect: call of reflect.Value.Len on interface Value goroutine 3049 [running]:
github.com/labstack/echo/v4/middleware.RecoverWithConfig.func1.1.1()
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/recover.go:93 +0x14e
panic({0x14d46c0, 0xc02503d668})
        /usr/local/go/src/runtime/panic.go:884 +0x213
reflect.Value.lenNonSlice({0x14c3a40?, 0xc00063c680?, 0xc025b7b650?})
        /usr/local/go/src/reflect/value.go:1714 +0x165
reflect.Value.Len(...)
        /usr/local/go/src/reflect/value.go:1693
xorm.io/xorm/internal/statements.(*Statement).BuildUpdates(0xc0001e2900, {0x1650060, 0xc00063c580, 0x199}, 0xe0?, 0xcc?, 0x19?, 0x1?, 0xc0?)
        /go/pkg/mod/xorm.io/xorm@v1.3.2/internal/statements/update.go:264 +0xf67
xorm.io/xorm.(*Session).Update(0xc025018dd0, {0x15c3bc0, 0xc00063c580}, {0x0, 0x0, 0xc025b7b3e0?})
        /go/pkg/mod/xorm.io/xorm@v1.3.2/session_update.go:191 +0x59f
code.vikunja.io/api/pkg/user.UpdateUserPassword(0xc025018dd0, 0xc00063c2c0, {0xc00108d080, 0x17})
        /go/src/code.vikunja.io/api/pkg/user/user.go:552 +0x119
code.vikunja.io/api/pkg/routes/api/v1.UserChangePassword({0x1a933a0, 0xc0001be1e0})
        /go/src/code.vikunja.io/api/pkg/routes/api/v1/user_update_password.go:76 +0x195
github.com/labstack/echo-jwt/v4.Config.ToMiddleware.func2.1({0x1a933a0, 0xc0001be1e0})
        /go/pkg/mod/github.com/labstack/echo-jwt/v4@v4.2.0/jwt.go:237 +0x41d
code.vikunja.io/api/pkg/routes.registerAPIRoutes.func1.1({0x1a933a0, 0xc0001be1e0})
        /go/src/code.vikunja.io/api/pkg/routes/routes.go:230 +0x1cb
github.com/labstack/echo/v4.(*Echo).add.func1({0x1a933a0, 0xc0001be1e0})
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/echo.go:575 +0x51
github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1({0x1a933a0, 0xc0001be1e0})
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/cors.go:264 +0x8b8
github.com/labstack/echo/v4/middleware.RecoverWithConfig.func1.1({0x1a933a0, 0xc0001be1e0})
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/recover.go:119 +0xfe
github.com/labstack/echo/v4/middleware.LoggerWithConfig.func2.1({0x1a933a0, 0xc0001be1e0})
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/logger.go:126 +0xe2
github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc00002a000, {0x1a752f0?, 0xc025efc460}, 0xc0000bd700)
        /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/echo.go:662 +0x3d1
net/http.serverHandler.ServeHTTP({0x1a71910?}, {0x1a752f0, 0xc025efc460}, 0xc0000bd700)
        /usr/local/go/src/net/http/server.go:2936 +0x316
net/http.(*conn).serve(0xc000fed320, {0x1a75c88, 0xc00019a4e0})
        /usr/local/go/src/net/http/server.go:1995 +0x612
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:3089 +0x5ed

goroutine 1 [chan receive, 22 minutes]:
code.vikunja.io/api/pkg/cmd.glob..func25(0x25588a0?, {0x167ae75?, 0x0?, 0x0?})
        /go/src/code.vikunja.io/api/pkg/cmd/web.go:98 +0x171
github.com/spf13/cobra.(*Command).execute(0x25588a0, {0xc000040240, 0x0, 0x0})
        /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0x25588a0)
        /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
        /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
code.vikunja.io/api/pkg/cmd.Execute()
        /go/src/code.vikunja.io/api/pkg/cmd/cmd.go:44 +0x25
main.main()
        /go/src/code.vikunja.io/api/main.go:22 +0x17

goroutine 20 [select, 22 minutes]:
database/sql.(*DB).connectionOpener(0xc00019d930, {0x1a75be0, 0xc00009a410})
        /usr/local/go/src/database/sql/sql.go:1218 +0x8d
created by database/sql.OpenDB
        /usr/local/go/src/database/sql/sql.go:791 +0x18d

goroutine 10 [select, 22 minutes]:
github.com/ThreeDotsLabs/watermill/message.(*handler).handleClose(0xc000334750, {0x1a75be0?, 0xc00009b450?})
        /go/pkg/mod/github.com/!three!dots!labs/watermill@v1.2.0/message/router.go:728 +0x78
created by github.com/ThreeDotsLabs/watermill/message.(*handler).run
        /go/pkg/mod/github.com/!three!dots!labs/watermill@v1.2.0/message/router.go:597 +0x28f

goroutine 11 [select, 22 minutes]:
github.com/ThreeDotsLabs/watermill/message.(*handler).handleClose(0xc0003340d0, {0x1a75be0?, 0xc00012c0a0?})
        /go/pkg/mod/github.com/!three!d

Setup

Setup via docker compose behind NGINX Proxy Manager.

docker-compose.yml (anonymized)

version: '3'

services:
  vikunjadb:
    image: mariadb:${TAG:-10}
    container_name: ${SERVICE:-vikunja}-db
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    env_file: .env
    volumes:
      - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/${SERVICE:-vikunja}/db:/var/lib/mysql
    restart: unless-stopped

  api:
    image: vikunja/api
    container_name: ${SERVICE:-vikunja}-api
    env_file: .env
    ports:
      - ${IP}:${PORT_API}:3456
    volumes:
      - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/${SERVICE:-vikunja}/files:/app/vikunja/files
    depends_on:
      - vikunjadb
    restart: unless-stopped

  frontend:
    image: vikunja/frontend
    container_name: ${SERVICE:-vikunja}
    ports:
      - ${IP}:${PORT}:80
    env_file: .env
    restart: unless-stopped

networks:
  default:
    external: true
    name: ${NETWORK:-proxy}

.env (anonymized)

IP=ip
PORT=port
PORT_API=port
MYSQL_ROOT_PASSWORD=pw
MYSQL_USER=vikunja
MYSQL_PASSWORD=pw
MYSQL_DATABASE=vikunja

VIKUNJA_API_URL=https://vikunja-api.XYZ

VIKUNJA_DATABASE_HOST=vikunjadb
VIKUNJA_DATABASE_PASSWORD=pw
VIKUNJA_DATABASE_TYPE=mysql
VIKUNJA_DATABASE_USER=vikunja
VIKUNJA_DATABASE_DATABASE=vikunja
VIKUNJA_SERVICE_JWTSECRET=secret
VIKUNJA_SERVICE_FRONTENDURL=https://tasks.XYZ.com
VIKUNJA_SERVICE_ENABLEREGISTRATION=false
VIKUNJA_SERVICE_TIMEZONE=Europe/Berlin
VIKUNJA_DEFAULTSETTINGS_LANGUAGE=de
VIKUNJA_DEFAULTSETTINGS_WEEK_START=1
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME=true
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL=true

VIKUNJA_MAILER_ENABLED=true
VIKUNJA_MAILER_HOST=smtp
VIKUNJA_MAILER_PORT=587
VIKUNJA_MAILER_AUTHTYPE=plain
VIKUNJA_MAILER_USERNAME=mail
VIKUNJA_MAILER_PASSWORD=pw
VIKUNJA_MAILER_FROMEMAIL=mail

Vikunja Frontend Version

0.21.0

Vikunja API Version

0.21.0

Browser and version

No response

Can you reproduce the bug on the Vikunja demo site?

No

Screenshots

No response

### Description ## Issue I cannot send password reset mails. Neither from command line nor from web app. Other emails, like via the `testmail` command or mentioning in comments via @username, are sent promptly and correctly. The mailer system is functioning. ## Logs Requesting results in the following log output: ```bash ▶ echo recover.go:113 [PANIC RECOVER] reflect: call of reflect.Value.Len on interface Value goroutine 3049 [running]: github.com/labstack/echo/v4/middleware.RecoverWithConfig.func1.1.1() /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/recover.go:93 +0x14e panic({0x14d46c0, 0xc02503d668}) /usr/local/go/src/runtime/panic.go:884 +0x213 reflect.Value.lenNonSlice({0x14c3a40?, 0xc00063c680?, 0xc025b7b650?}) /usr/local/go/src/reflect/value.go:1714 +0x165 reflect.Value.Len(...) /usr/local/go/src/reflect/value.go:1693 xorm.io/xorm/internal/statements.(*Statement).BuildUpdates(0xc0001e2900, {0x1650060, 0xc00063c580, 0x199}, 0xe0?, 0xcc?, 0x19?, 0x1?, 0xc0?) /go/pkg/mod/xorm.io/xorm@v1.3.2/internal/statements/update.go:264 +0xf67 xorm.io/xorm.(*Session).Update(0xc025018dd0, {0x15c3bc0, 0xc00063c580}, {0x0, 0x0, 0xc025b7b3e0?}) /go/pkg/mod/xorm.io/xorm@v1.3.2/session_update.go:191 +0x59f code.vikunja.io/api/pkg/user.UpdateUserPassword(0xc025018dd0, 0xc00063c2c0, {0xc00108d080, 0x17}) /go/src/code.vikunja.io/api/pkg/user/user.go:552 +0x119 code.vikunja.io/api/pkg/routes/api/v1.UserChangePassword({0x1a933a0, 0xc0001be1e0}) /go/src/code.vikunja.io/api/pkg/routes/api/v1/user_update_password.go:76 +0x195 github.com/labstack/echo-jwt/v4.Config.ToMiddleware.func2.1({0x1a933a0, 0xc0001be1e0}) /go/pkg/mod/github.com/labstack/echo-jwt/v4@v4.2.0/jwt.go:237 +0x41d code.vikunja.io/api/pkg/routes.registerAPIRoutes.func1.1({0x1a933a0, 0xc0001be1e0}) /go/src/code.vikunja.io/api/pkg/routes/routes.go:230 +0x1cb github.com/labstack/echo/v4.(*Echo).add.func1({0x1a933a0, 0xc0001be1e0}) /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/echo.go:575 +0x51 github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1({0x1a933a0, 0xc0001be1e0}) /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/cors.go:264 +0x8b8 github.com/labstack/echo/v4/middleware.RecoverWithConfig.func1.1({0x1a933a0, 0xc0001be1e0}) /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/recover.go:119 +0xfe github.com/labstack/echo/v4/middleware.LoggerWithConfig.func2.1({0x1a933a0, 0xc0001be1e0}) /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/middleware/logger.go:126 +0xe2 github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc00002a000, {0x1a752f0?, 0xc025efc460}, 0xc0000bd700) /go/pkg/mod/github.com/labstack/echo/v4@v4.10.2/echo.go:662 +0x3d1 net/http.serverHandler.ServeHTTP({0x1a71910?}, {0x1a752f0, 0xc025efc460}, 0xc0000bd700) /usr/local/go/src/net/http/server.go:2936 +0x316 net/http.(*conn).serve(0xc000fed320, {0x1a75c88, 0xc00019a4e0}) /usr/local/go/src/net/http/server.go:1995 +0x612 created by net/http.(*Server).Serve /usr/local/go/src/net/http/server.go:3089 +0x5ed goroutine 1 [chan receive, 22 minutes]: code.vikunja.io/api/pkg/cmd.glob..func25(0x25588a0?, {0x167ae75?, 0x0?, 0x0?}) /go/src/code.vikunja.io/api/pkg/cmd/web.go:98 +0x171 github.com/spf13/cobra.(*Command).execute(0x25588a0, {0xc000040240, 0x0, 0x0}) /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x847 github.com/spf13/cobra.(*Command).ExecuteC(0x25588a0) /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3bd github.com/spf13/cobra.(*Command).Execute(...) /go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992 code.vikunja.io/api/pkg/cmd.Execute() /go/src/code.vikunja.io/api/pkg/cmd/cmd.go:44 +0x25 main.main() /go/src/code.vikunja.io/api/main.go:22 +0x17 goroutine 20 [select, 22 minutes]: database/sql.(*DB).connectionOpener(0xc00019d930, {0x1a75be0, 0xc00009a410}) /usr/local/go/src/database/sql/sql.go:1218 +0x8d created by database/sql.OpenDB /usr/local/go/src/database/sql/sql.go:791 +0x18d goroutine 10 [select, 22 minutes]: github.com/ThreeDotsLabs/watermill/message.(*handler).handleClose(0xc000334750, {0x1a75be0?, 0xc00009b450?}) /go/pkg/mod/github.com/!three!dots!labs/watermill@v1.2.0/message/router.go:728 +0x78 created by github.com/ThreeDotsLabs/watermill/message.(*handler).run /go/pkg/mod/github.com/!three!dots!labs/watermill@v1.2.0/message/router.go:597 +0x28f goroutine 11 [select, 22 minutes]: github.com/ThreeDotsLabs/watermill/message.(*handler).handleClose(0xc0003340d0, {0x1a75be0?, 0xc00012c0a0?}) /go/pkg/mod/github.com/!three!d ``` ## Setup Setup via docker compose behind NGINX Proxy Manager. ### `docker-compose.yml` (anonymized) ```yaml version: '3' services: vikunjadb: image: mariadb:${TAG:-10} container_name: ${SERVICE:-vikunja}-db command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci env_file: .env volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/${SERVICE:-vikunja}/db:/var/lib/mysql restart: unless-stopped api: image: vikunja/api container_name: ${SERVICE:-vikunja}-api env_file: .env ports: - ${IP}:${PORT_API}:3456 volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/${SERVICE:-vikunja}/files:/app/vikunja/files depends_on: - vikunjadb restart: unless-stopped frontend: image: vikunja/frontend container_name: ${SERVICE:-vikunja} ports: - ${IP}:${PORT}:80 env_file: .env restart: unless-stopped networks: default: external: true name: ${NETWORK:-proxy} ``` ### `.env` (anonymized) ``` IP=ip PORT=port PORT_API=port MYSQL_ROOT_PASSWORD=pw MYSQL_USER=vikunja MYSQL_PASSWORD=pw MYSQL_DATABASE=vikunja VIKUNJA_API_URL=https://vikunja-api.XYZ VIKUNJA_DATABASE_HOST=vikunjadb VIKUNJA_DATABASE_PASSWORD=pw VIKUNJA_DATABASE_TYPE=mysql VIKUNJA_DATABASE_USER=vikunja VIKUNJA_DATABASE_DATABASE=vikunja VIKUNJA_SERVICE_JWTSECRET=secret VIKUNJA_SERVICE_FRONTENDURL=https://tasks.XYZ.com VIKUNJA_SERVICE_ENABLEREGISTRATION=false VIKUNJA_SERVICE_TIMEZONE=Europe/Berlin VIKUNJA_DEFAULTSETTINGS_LANGUAGE=de VIKUNJA_DEFAULTSETTINGS_WEEK_START=1 VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME=true VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL=true VIKUNJA_MAILER_ENABLED=true VIKUNJA_MAILER_HOST=smtp VIKUNJA_MAILER_PORT=587 VIKUNJA_MAILER_AUTHTYPE=plain VIKUNJA_MAILER_USERNAME=mail VIKUNJA_MAILER_PASSWORD=pw VIKUNJA_MAILER_FROMEMAIL=mail ``` ### Vikunja Frontend Version 0.21.0 ### Vikunja API Version 0.21.0 ### Browser and version _No response_ ### Can you reproduce the bug on the Vikunja demo site? No ### Screenshots _No response_
episode_grinch227 added the
kind/bug
label 2023-08-18 12:11:48 +00:00
Owner

Duplicate of vikunja/api#1587

Duplicate of https://kolaente.dev/vikunja/api/issues/1587
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: vikunja/vikunja#1590
No description provided.