Attachments TypeError: ee is null

Hi :slight_smile:

When uploading an attachment to a task, it gets uploaded but I’m stuck on that task and can’t navigate through the other panels (Overview, projects, labels…). To make it work again I have to refresh the page. Because I have no idea if it’s related to the api or frontend I’m posting my issue here on the forum.

  • Fresh docker installation with traefik
  • Tested with latest and unstable version (this fixed the relation “webhooks” ERROR)
  • Tested on firefox android and Mac

There are no error logs in my containers, neither in the api, frontend or database and the attachment is correctly uploaded.

EDIT:
The api container throws the following error:

2024-01-03T22:23:43.842070536Z: ERROR	▶ models/Handle fbd Event payload does not contain task ID

The web developer tools raises the following:

TypeError: ee is null
    insert runtime-dom.esm-bundler.js:10
    Oe runtime-core.esm-bundler.js:5189
    xe runtime-core.esm-bundler.js:5092
    je runtime-core.esm-bundler.js:5516
    Re runtime-core.esm-bundler.js:5407
    Be runtime-core.esm-bundler.js:5255
    xe runtime-core.esm-bundler.js:5116
    Kt runtime-core.esm-bundler.js:5861
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    At runtime-core.esm-bundler.js:5729
    Le runtime-core.esm-bundler.js:5664
    xe runtime-core.esm-bundler.js:5128
    Kt runtime-core.esm-bundler.js:5861
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    At runtime-core.esm-bundler.js:5729
    Le runtime-core.esm-bundler.js:5664
    xe runtime-core.esm-bundler.js:5128
    je runtime-core.esm-bundler.js:5516
    Re runtime-core.esm-bundler.js:5407
    Be runtime-core.esm-bundler.js:5255
    xe runtime-core.esm-bundler.js:5116
    Kt runtime-core.esm-bundler.js:5861
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    callWithErrorHandling runtime-core.esm-bundler.js:158
    flushJobs runtime-core.esm-bundler.js:365
    promise callback*queueFlush runtime-core.esm-bundler.js:275
    queueJob runtime-core.esm-bundler.js:269
    Oe runtime-core.esm-bundler.js:1857
    triggerEffect reactivity.esm-bundler.js:373
    triggerEffects reactivity.esm-bundler.js:363
    triggerRefValue reactivity.esm-bundler.js:980
    effect reactivity.esm-bundler.js:1130
    triggerEffect reactivity.esm-bundler.js:373
    triggerEffects reactivity.esm-bundler.js:358
    triggerRefValue reactivity.esm-bundler.js:980
    set value reactivity.esm-bundler.js:1017
    N TipTap.vue:534
    setup TipTap.vue:520
    createHook runtime-core.esm-bundler.js:2764
    callWithErrorHandling runtime-core.esm-bundler.js:158
    callWithAsyncErrorHandling runtime-core.esm-bundler.js:166
    __weh runtime-core.esm-bundler.js:2744
    flushPostFlushCbs runtime-core.esm-bundler.js:333
    flushJobs runtime-core.esm-bundler.js:371
    promise callback*queueFlush runtime-core.esm-bundler.js:275
    queueJob runtime-core.esm-bundler.js:269
    effect runtime-core.esm-bundler.js:5898
    triggerEffect reactivity.esm-bundler.js:373
    triggerEffects reactivity.esm-bundler.js:363
    triggerRefValue reactivity.esm-bundler.js:980
    set value reactivity.esm-bundler.js:1017
    setup runtime-core.esm-bundler.js:2454
    promise callback*setup runtime-core.esm-bundler.js:2453
    callWithErrorHandling runtime-core.esm-bundler.js:158
    setupStatefulComponent runtime-core.esm-bundler.js:7332
    setupComponent runtime-core.esm-bundler.js:7292
    qe runtime-core.esm-bundler.js:5687
    Le runtime-core.esm-bundler.js:5653
    xe runtime-core.esm-bundler.js:5128
    Fe runtime-core.esm-bundler.js:5373
    Ve runtime-core.esm-bundler.js:5279
    Be runtime-core.esm-bundler.js:5244
    xe runtime-core.esm-bundler.js:5116
    Kt runtime-core.esm-bundler.js:5797
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    Ge runtime-core.esm-bundler.js:5910
    qe runtime-core.esm-bundler.js:5701
    Le runtime-core.esm-bundler.js:5653
    xe runtime-core.esm-bundler.js:5128
    Fe runtime-core.esm-bundler.js:5373
    Ve runtime-core.esm-bundler.js:5279
    Be runtime-core.esm-bundler.js:5244
    xe runtime-core.esm-bundler.js:5116
    Fe runtime-core.esm-bundler.js:5373
    Ve runtime-core.esm-bundler.js:5279
    Be runtime-core.esm-bundler.js:5244
    xe runtime-core.esm-bundler.js:5116
    Fe runtime-core.esm-bundler.js:5373
    Ve runtime-core.esm-bundler.js:5279
    Be runtime-core.esm-bundler.js:5244
    xe runtime-core.esm-bundler.js:5116
runtime-core.esm-bundler.js:226:12

I also tried with 0.21.0 and works without any issue but can’t set the attachment as cover.

If you need further investigation or other logs, please consider I’m not a dev :frowning: and I would probably need some assistants and clear guidelines to get what you need/want :slight_smile:

docker-compose.yaml
(variables are changed on purpose and don’t reflect my real instance’s password, secret and domain name…)

version: '3'

services:
  api:
    image: vikunja/api:unstable
    environment:
      - VIKUNJA_DATABASE_HOST=db-2
      - VIKUNJA_DATABASE_PASSWORD=supersecret
      - VIKUNJA_DATABASE_TYPE=mysql
      - VIKUNJA_DATABASE_USER=vikunja
      - VIKUNJA_DATABASE_DATABASE=vikunja
      - VIKUNJA_SERVICE_JWTSECRET=supersecret
      - VIKUNJA_SERVICE_FRONTENDURL=https://myvikunja.dns
      - PUID=1000
      - PGID=1000

    volumes:
      - files:/app/vikunja/files
    depends_on:
      - db-2
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.vikunja-api.rule=Host(`myvikunja.dns`) && (PathPrefix(`/api/v1`) || PathPrefix(`/dav/`) || PathPrefix(`/.well-known/`))"
      - "traefik.http.routers.vikunja-api.entrypoints=websecure"
      - "traefik.http.routers.vikunja-api.tls=true"

  frontend:
    image: vikunja/frontend:unstable
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.vikunja-frontend.rule=Host(`myvikunja.dns`)"
      - "traefik.http.routers.vikunja-frontend.entrypoints=websecure"
      - "traefik.http.routers.vikunja-frontend.tls=true"
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000

  db-2:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1000
    environment:
      - MYSQL_ROOT_PASSWORD=supersecret
      - MYSQL_USER=vikunja
      - MYSQL_PASSWORD=supersecret
      - MYSQL_DATABASE=vikunja
      - PUID=1000
      - PGID=1000

    volumes:
      - mariadb:/var/lib/mysql
    restart: unless-stopped


networks:
  default:
    external: true
    name: traefik-net

volumes:
  mariadb:
    driver: local
  files:
    driver: local

Right now I will stay on 0.21.0, until this is fixed. It’s maybe even an error on my side? I don’t know :confused:

Thanks for your help and splendid work :heart_eyes:, happy new year !

How did you upload the attachment? Paste in the editor or drag n drop or uploaded via the button?

Can you reproduce this on try?

Hi thanks for your fast reply !

I tried with drag & drop and upload button, both raised the same errors, behavior.

I can’t reproduce this on your vikunja demo instance, it works as expected !

Sorry it actually also does the same thing on your demo instance ! Does that mean it’s because of my browser? Or plugins, adblocker…?

Error logs in the browser with your instance

TypeError: Xe is null
    En runtime-core.esm-bundler.js:6375
    fn runtime-core.esm-bundler.js:6283
    gn runtime-core.esm-bundler.js:6402
    fn runtime-core.esm-bundler.js:6303
    En runtime-core.esm-bundler.js:6382
    fn runtime-core.esm-bundler.js:6283
    En runtime-core.esm-bundler.js:6382
    fn runtime-core.esm-bundler.js:6283
    gn runtime-core.esm-bundler.js:6402
    fn runtime-core.esm-bundler.js:6303
    En runtime-core.esm-bundler.js:6382
    fn runtime-core.esm-bundler.js:6283
    gn runtime-core.esm-bundler.js:6402
    fn runtime-core.esm-bundler.js:6303
    gn runtime-core.esm-bundler.js:6402
    fn runtime-core.esm-bundler.js:6303
    En runtime-core.esm-bundler.js:6382
    fn runtime-core.esm-bundler.js:6283
    xe runtime-core.esm-bundler.js:5079
    Kt runtime-core.esm-bundler.js:5861
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    At runtime-core.esm-bundler.js:5729
    Le runtime-core.esm-bundler.js:5664
    xe runtime-core.esm-bundler.js:5128
    Kt runtime-core.esm-bundler.js:5861
    run reactivity.esm-bundler.js:178
    update runtime-core.esm-bundler.js:5902
    callWithErrorHandling runtime-core.esm-bundler.js:158
    flushJobs runtime-core.esm-bundler.js:365

EDIT:
On Safari without any browser extensions and wireguard tunnel desactivated

[Error] TypeError: null is not an object (evaluating 'ee.insertBefore') — runtime-dom.esm-bundler.js:10
	(anonymous function) (index-3PW20BEX.js:1:3757)
	logError (index-SvDUEXY2.js:1:36834)
	handleError$1 (index-SvDUEXY2.js:1:36775)
	callWithErrorHandling (index-SvDUEXY2.js:1:36139)
	flushJobs (index-SvDUEXY2.js:1:38919)
	promiseReactionJob
[Error] TypeError: Right side of assignment cannot be destructured
En — runtime-core.esm-bundler.js:6376
fn — runtime-core.esm-bundler.js:6283
gn — runtime-core.esm-bundler.js:6402
fn — runtime-core.esm-bundler.js:6304
En — runtime-core.esm-bundler.js:6382
fn — runtime-core.esm-bundler.js:6283
En — runtime-core.esm-bundler.js:6382
fn — runtime-core.esm-bundler.js:6283
gn — runtime-core.esm-bundler.js:6402
fn — runtime-core.esm-bundler.js:6304
En — runtime-core.esm-bundler.js:6382
fn — runtime-core.esm-bundler.js:6283
gn — runtime-core.esm-bundler.js:6402
fn — runtime-core.esm-bundler.js:6304
gn — runtime-core.esm-bundler.js:6402
fn — runtime-core.esm-bundler.js:6304
En — runtime-core.esm-bundler.js:6382
fn — runtime-core.esm-bundler.js:6283
xe — runtime-core.esm-bundler.js:5079
Kt — runtime-core.esm-bundler.js:5862
run — reactivity.esm-bundler.js:178
At — runtime-core.esm-bundler.js:5729
Le — runtime-core.esm-bundler.js:5664
xe — runtime-core.esm-bundler.js:5129
Kt — runtime-core.esm-bundler.js:5862
run — reactivity.esm-bundler.js:178
callWithErrorHandling — runtime-core.esm-bundler.js:158
flushJobs — runtime-core.esm-bundler.js:365
promiseReactionJob

	(anonymous function) (index-3PW20BEX.js:1:3757)
	logError (index-SvDUEXY2.js:1:36834)
	handleError$1 (index-SvDUEXY2.js:1:36775)
	callWithErrorHandling (index-SvDUEXY2.js:1:36139)
	flushJobs (index-SvDUEXY2.js:1:38919)
	promiseReactionJob
[Error] TypeError: null is not an object (evaluating 'Xe.component.subTree')
Ft — runtime-core.esm-bundler.js:6407
Kt — runtime-core.esm-bundler.js:5867
run — reactivity.esm-bundler.js:178
callWithErrorHandling — runtime-core.esm-bundler.js:158
flushJobs — runtime-core.esm-bundler.js:365
promiseReactionJob

	(anonymous function) (index-3PW20BEX.js:1:3757)
	logError (index-SvDUEXY2.js:1:36834)
	handleError$1 (index-SvDUEXY2.js:1:36775)
	callWithErrorHandling (index-SvDUEXY2.js:1:36139)
	flushJobs (index-SvDUEXY2.js:1:38919)
	promiseReactionJob

This is now fixed in 0b3604d167. Please check with the latest unstable build (on try) to see if the problem went away.

Hello :slight_smile:

It seems to work on your demo instance ! I will spin up the new unstable build and will test it out and edit my reply !

Edit: Thank you :slight_smile: Everything seems fine with the latest build ! Good job !