Paperless-NGX consume service broken after update #2065

Closed
opened 2026-02-05 03:38:01 +03:00 by OVERLORD · 8 comments
Owner

Originally created by @Feedy88 on GitHub (Nov 24, 2025).

Have you read and understood the above guidelines?

yes

🔎 Did you run the script with verbose mode enabled?

Yes, verbose mode was enabled and the output is included below

📜 What is the name of the script you are using?

paperless-ngx

📂 What was the exact command used to execute the script?

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/paperless-ngx.sh)"

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Debian 12

📈 Which Proxmox version are you on?

8.2.7

📝 Provide a clear and concise description of the issue.

After doing the data migration and upgrading to paperless-ngx 2.20 via the update script, the paperless-consume service is exiting with an error.

🔄 Steps to reproduce the issue.

  1. Run migration steps
  2. Run Update script

Paste the full error output (if available).

paperless-ngx python3[125]: Traceback (most recent call last): 
paperless-ngx python3[125]:   File "/opt/paperless/src/manage.py", line 10, in <module> 
paperless-ngx python3[125]:     execute_from_command_line(sys.argv) 
paperless-ngx python3[125]:   File "/usr/local/lib/python3.11/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line 
paperless-ngx python3[125]:     utility.execute() 
paperless-ngx python3[125]:   File "/usr/local/lib/python3.11/dist-packages/django/core/management/__init__.py", line 416, in execute 
paperless-ngx python3[125]:     django.setup() 
paperless-ngx python3[125]:   File "/usr/local/lib/python3.11/dist-packages/django/__init__.py", line 24, in setup 
paperless-ngx python3[125]:     apps.populate(settings.INSTALLED_APPS) 
paperless-ngx python3[125]:   File "/usr/local/lib/python3.11/dist-packages/django/apps/registry.py", line 91, in populate 
paperless-ngx python3[125]:     app_config = AppConfig.create(entry) 
paperless-ngx python3[125]:                  ^^^^^^^^^^^^^^^^^^^^^^^ 
paperless-ngx python3[125]:   File "/usr/local/lib/python3.11/dist-packages/django/apps/config.py", line 193, in create 
paperless-ngx python3[125]:     import_module(entry) 
paperless-ngx python3[125]:   File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module 
paperless-ngx python3[125]:     return _bootstrap._gcd_import(name[level:], package, level) 
paperless-ngx python3[125]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
paperless-ngx python3[125]:   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import 
paperless-ngx python3[125]:   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load 
paperless-ngx python3[125]:   File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked 
paperless-ngx python3[125]: ModuleNotFoundError: No module named 'treenode' 
paperless-ngx systemd[1]: paperless-consumer.service: Main process exited, code=exited, status=1/FAILURE 
paperless-ngx systemd[1]: paperless-consumer.service: Failed with result 'exit-code'. 
paperless-ngx systemd[1]: paperless-consumer.service: Consumed 1.127s CPU time..``


### 🖼️ Additional context (optional).

_No response_
Originally created by @Feedy88 on GitHub (Nov 24, 2025). ### ✅ Have you read and understood the above guidelines? yes ### 🔎 Did you run the script with verbose mode enabled? Yes, verbose mode was enabled and the output is included below ### 📜 What is the name of the script you are using? paperless-ngx ### 📂 What was the exact command used to execute the script? bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/paperless-ngx.sh)" ### ⚙️ What settings are you using? - [x] Default Settings - [ ] Advanced Settings ### 🖥️ Which Linux distribution are you using? Debian 12 ### 📈 Which Proxmox version are you on? 8.2.7 ### 📝 Provide a clear and concise description of the issue. After doing the data migration and upgrading to paperless-ngx 2.20 via the update script, the paperless-consume service is exiting with an error. ### 🔄 Steps to reproduce the issue. 1. Run migration steps 2. Run Update script ### ❌ Paste the full error output (if available). ```paperless-ngx systemd[1]: Started paperless-consumer.service - Paperless consumer. paperless-ngx python3[125]: Traceback (most recent call last): paperless-ngx python3[125]: File "/opt/paperless/src/manage.py", line 10, in <module> paperless-ngx python3[125]: execute_from_command_line(sys.argv) paperless-ngx python3[125]: File "/usr/local/lib/python3.11/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line paperless-ngx python3[125]: utility.execute() paperless-ngx python3[125]: File "/usr/local/lib/python3.11/dist-packages/django/core/management/__init__.py", line 416, in execute paperless-ngx python3[125]: django.setup() paperless-ngx python3[125]: File "/usr/local/lib/python3.11/dist-packages/django/__init__.py", line 24, in setup paperless-ngx python3[125]: apps.populate(settings.INSTALLED_APPS) paperless-ngx python3[125]: File "/usr/local/lib/python3.11/dist-packages/django/apps/registry.py", line 91, in populate paperless-ngx python3[125]: app_config = AppConfig.create(entry) paperless-ngx python3[125]: ^^^^^^^^^^^^^^^^^^^^^^^ paperless-ngx python3[125]: File "/usr/local/lib/python3.11/dist-packages/django/apps/config.py", line 193, in create paperless-ngx python3[125]: import_module(entry) paperless-ngx python3[125]: File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module paperless-ngx python3[125]: return _bootstrap._gcd_import(name[level:], package, level) paperless-ngx python3[125]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ paperless-ngx python3[125]: File "<frozen importlib._bootstrap>", line 1206, in _gcd_import paperless-ngx python3[125]: File "<frozen importlib._bootstrap>", line 1178, in _find_and_load paperless-ngx python3[125]: File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked paperless-ngx python3[125]: ModuleNotFoundError: No module named 'treenode' paperless-ngx systemd[1]: paperless-consumer.service: Main process exited, code=exited, status=1/FAILURE paperless-ngx systemd[1]: paperless-consumer.service: Failed with result 'exit-code'. paperless-ngx systemd[1]: paperless-consumer.service: Consumed 1.127s CPU time..`` ### 🖼️ Additional context (optional). _No response_
OVERLORD added the not a script issueneeds triage labels 2026-02-05 03:38:01 +03:00
Author
Owner

@MickLesk commented on GitHub (Nov 24, 2025):

Cat the .Service - it Looks wrong.

Service should look so, not with python:

root@paperless-ngx:~# systemctl status paperless-consumer.service 
* paperless-consumer.service - Paperless consumer
     Loaded: loaded (/etc/systemd/system/paperless-consumer.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-11-24 09:18:01 CET; 4min 10s ago
   Main PID: 54165 (uv)
      Tasks: 3 (limit: 57173)
     Memory: 116.1M
        CPU: 772ms
     CGroup: /system.slice/paperless-consumer.service
             |-54165 uv run -- python manage.py document_consumer
             `-54185 /opt/paperless/.venv/bin/python3 manage.py document_consumer

Nov 24 09:18:03 paperless-ngx uv[54185]:     return 1
Nov 24 09:18:03 paperless-ngx uv[54185]: [2025-11-24 09:18:03,306] [DEBUG] [celery.utils.functional]
Nov 24 09:18:03 paperless-ngx uv[54185]: def process_mail_accounts(account_ids=0):
Nov 24 09:18:03 paperless-ngx uv[54185]:     return 1
Nov 24 09:18:03 paperless-ngx uv[54185]: System check identified some issues:
Nov 24 09:18:03 paperless-ngx uv[54185]: WARNINGS:
Nov 24 09:18:03 paperless-ngx uv[54185]: ?: DEBUG mode is enabled. Disable Debug mode. This is a serious security issue, since it puts security overrides in place >
Nov 24 09:18:03 paperless-ngx uv[54185]: ?: Filename format %Y/%m/%d/{correspondent}/{title} is using the old style, please update to use double curly brackets
Nov 24 09:18:03 paperless-ngx uv[54185]:         HINT: %Y/%m/%d/{{ correspondent }}/{{ title }}
Nov 24 09:18:03 paperless-ngx uv[54185]: [2025-11-24 09:18:03,362] [INFO] [paperless.management.consumer] Using inotify to watch directory for changes: /opt/paperl>
lines 1-21/21 (END)

@MickLesk commented on GitHub (Nov 24, 2025): Cat the .Service - it Looks wrong. Service should look so, not with python: ```log root@paperless-ngx:~# systemctl status paperless-consumer.service * paperless-consumer.service - Paperless consumer Loaded: loaded (/etc/systemd/system/paperless-consumer.service; enabled; preset: enabled) Active: active (running) since Mon 2025-11-24 09:18:01 CET; 4min 10s ago Main PID: 54165 (uv) Tasks: 3 (limit: 57173) Memory: 116.1M CPU: 772ms CGroup: /system.slice/paperless-consumer.service |-54165 uv run -- python manage.py document_consumer `-54185 /opt/paperless/.venv/bin/python3 manage.py document_consumer Nov 24 09:18:03 paperless-ngx uv[54185]: return 1 Nov 24 09:18:03 paperless-ngx uv[54185]: [2025-11-24 09:18:03,306] [DEBUG] [celery.utils.functional] Nov 24 09:18:03 paperless-ngx uv[54185]: def process_mail_accounts(account_ids=0): Nov 24 09:18:03 paperless-ngx uv[54185]: return 1 Nov 24 09:18:03 paperless-ngx uv[54185]: System check identified some issues: Nov 24 09:18:03 paperless-ngx uv[54185]: WARNINGS: Nov 24 09:18:03 paperless-ngx uv[54185]: ?: DEBUG mode is enabled. Disable Debug mode. This is a serious security issue, since it puts security overrides in place > Nov 24 09:18:03 paperless-ngx uv[54185]: ?: Filename format %Y/%m/%d/{correspondent}/{title} is using the old style, please update to use double curly brackets Nov 24 09:18:03 paperless-ngx uv[54185]: HINT: %Y/%m/%d/{{ correspondent }}/{{ title }} Nov 24 09:18:03 paperless-ngx uv[54185]: [2025-11-24 09:18:03,362] [INFO] [paperless.management.consumer] Using inotify to watch directory for changes: /opt/paperl> lines 1-21/21 (END)
Author
Owner

@Feedy88 commented on GitHub (Nov 24, 2025):

I did a rollback yesterday, will need to migrate/update again and try.

I was reading other comments and saw UV should be in use which is not the case for my V2.18.1. although I always used the Community-Script since I started the setup.

@Feedy88 commented on GitHub (Nov 24, 2025): I did a rollback yesterday, will need to migrate/update again and try. I was reading other comments and saw UV should be in use which is not the case for my V2.18.1. although I always used the Community-Script since I started the setup.
Author
Owner

@MickLesk commented on GitHub (Nov 24, 2025):

the migration should be done in the update, so i need more information (Screenshot of procedure) or the full output, because this part:

msg_warn "You are about to migrate your Paperless-ngx installation to uv!"
      msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:"
      echo -e "   1. Stop the container:  pct stop <CTID>"
      echo -e "   2. Create a snapshot:  pct snapshot <CTID> pre-paperless-uv-migration"
      echo -e "   3. Start the container again\n"

      read -rp "Have you created a snapshot? [y/N]: " confirm
      if [[ ! "$confirm" =~ ^([yY]|[yY][eE][sS])$ ]]; then
        msg_error "Migration aborted. Please create a snapshot first."
        exit
      fi
      msg_info "Migrating old Paperless-ngx installation to uv"
      rm -rf /opt/paperless/venv
      find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} +

      msg_info "Backing up configuration"
      local BACKUP_DIR="/opt/paperless_backup_$$"
      mkdir -p "$BACKUP_DIR"
      [[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
      msg_ok "Backup completed to $BACKUP_DIR"

      declare -A PATCHES=(
        ["paperless-scheduler.service"]="ExecStart=uv run -- celery --app paperless beat --loglevel INFO"
        ["paperless-task-queue.service"]="ExecStart=uv run -- celery --app paperless worker --loglevel INFO"
        ["paperless-webserver.service"]="ExecStart=uv run -- granian --interface asgi --ws \"paperless.asgi:application\""
      )

      for svc in "${!PATCHES[@]}"; do
        path=$(systemctl show -p FragmentPath "$svc" | cut -d= -f2)
        if [[ -n "$path" && -f "$path" ]]; then
          sed -i "s|^ExecStart=.*|${PATCHES[$svc]}|" "$path"
          if [[ "$svc" == "paperless-webserver.service" ]]; then
            grep -q "^Environment=GRANIAN_HOST=" "$path" ||
              sed -i '/^\[Service\]/a Environment=GRANIAN_HOST=::' "$path"
            grep -q "^Environment=GRANIAN_PORT=" "$path" ||
              sed -i '/^\[Service\]/a Environment=GRANIAN_PORT=8000' "$path"
            grep -q "^Environment=GRANIAN_WORKERS=" "$path" ||
              sed -i '/^\[Service\]/a Environment=GRANIAN_WORKERS=1' "$path"
          fi
          msg_ok "Patched $svc"
        else
          msg_error "Service file for $svc not found!"
        fi
      done

      $STD systemctl daemon-reload
      msg_info "Backing up configuration"
      BACKUP_DIR="/opt/paperless_backup_$$"
      mkdir -p "$BACKUP_DIR"
      [[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
      msg_ok "Backup completed to $BACKUP_DIR"

      PYTHON_VERSION="3.13" setup_uv
      CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
      CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"

      . /etc/os-release
      if [ "$VERSION_CODENAME" = "bookworm" ]; then
        setup_gs
      else
        msg_info "Installing Ghostscript"
        $STD apt install -y ghostscript
        msg_ok "Installed Ghostscript"
      fi
@MickLesk commented on GitHub (Nov 24, 2025): the migration should be done in the update, so i need more information (Screenshot of procedure) or the full output, because this part: ```bash msg_warn "You are about to migrate your Paperless-ngx installation to uv!" msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:" echo -e " 1. Stop the container: pct stop <CTID>" echo -e " 2. Create a snapshot: pct snapshot <CTID> pre-paperless-uv-migration" echo -e " 3. Start the container again\n" read -rp "Have you created a snapshot? [y/N]: " confirm if [[ ! "$confirm" =~ ^([yY]|[yY][eE][sS])$ ]]; then msg_error "Migration aborted. Please create a snapshot first." exit fi msg_info "Migrating old Paperless-ngx installation to uv" rm -rf /opt/paperless/venv find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} + msg_info "Backing up configuration" local BACKUP_DIR="/opt/paperless_backup_$$" mkdir -p "$BACKUP_DIR" [[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/" msg_ok "Backup completed to $BACKUP_DIR" declare -A PATCHES=( ["paperless-scheduler.service"]="ExecStart=uv run -- celery --app paperless beat --loglevel INFO" ["paperless-task-queue.service"]="ExecStart=uv run -- celery --app paperless worker --loglevel INFO" ["paperless-webserver.service"]="ExecStart=uv run -- granian --interface asgi --ws \"paperless.asgi:application\"" ) for svc in "${!PATCHES[@]}"; do path=$(systemctl show -p FragmentPath "$svc" | cut -d= -f2) if [[ -n "$path" && -f "$path" ]]; then sed -i "s|^ExecStart=.*|${PATCHES[$svc]}|" "$path" if [[ "$svc" == "paperless-webserver.service" ]]; then grep -q "^Environment=GRANIAN_HOST=" "$path" || sed -i '/^\[Service\]/a Environment=GRANIAN_HOST=::' "$path" grep -q "^Environment=GRANIAN_PORT=" "$path" || sed -i '/^\[Service\]/a Environment=GRANIAN_PORT=8000' "$path" grep -q "^Environment=GRANIAN_WORKERS=" "$path" || sed -i '/^\[Service\]/a Environment=GRANIAN_WORKERS=1' "$path" fi msg_ok "Patched $svc" else msg_error "Service file for $svc not found!" fi done $STD systemctl daemon-reload msg_info "Backing up configuration" BACKUP_DIR="/opt/paperless_backup_$$" mkdir -p "$BACKUP_DIR" [[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/" msg_ok "Backup completed to $BACKUP_DIR" PYTHON_VERSION="3.13" setup_uv CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc" . /etc/os-release if [ "$VERSION_CODENAME" = "bookworm" ]; then setup_gs else msg_info "Installing Ghostscript" $STD apt install -y ghostscript msg_ok "Installed Ghostscript" fi ```
Author
Owner

@Feedy88 commented on GitHub (Nov 24, 2025):

I see, I thought uv was used for some time already. Will likely reply late today, what's the best way to provide the complete output of the verbose update? Is it stored somewhere?

@Feedy88 commented on GitHub (Nov 24, 2025): I see, I thought uv was used for some time already. Will likely reply late today, what's the best way to provide the complete output of the verbose update? Is it stored somewhere?
Author
Owner

@MickLesk commented on GitHub (Nov 24, 2025):

not really, so maybe post an ctrl c 😄

@MickLesk commented on GitHub (Nov 24, 2025): not really, so maybe post an ctrl c :smile:
Author
Owner

@Feedy88 commented on GitHub (Nov 25, 2025):

Here is a part of the update output, hope that is enough:

✔️   Setup Ghostscript 10.06.0
  ⏳   Updating Paperless-ngxUsing CPython 3.13.9
Creating virtual environment at: .venv
Resolved 227 packages in 1.27s
      Built langdetect==1.0.9
      Built img2pdf==0.6.1
      Built mysqlclient==2.2.7
      Built psycopg-c==3.2.12
      Built django-allauth==65.12.1
Prepared 192 packages in 1m 18s
Installed 192 packages in 1.30s
 + amqp==5.3.1
 + anyio==4.11.0
 + asgiref==3.9.2
 + attrs==25.3.0
 + autobahn==24.4.2
 + automat==25.4.16
 + babel==2.17.0
 + backrefs==5.9
 + billiard==4.2.2
 + bleach==6.3.0
 + brotli==1.1.0
 + cached-property==2.0.1
 + celery==5.5.3
 + certifi==2025.8.3
 + cffi==2.0.0
 + cfgv==3.4.0
 + channels==4.3.1
 + channels-redis==4.3.0
 + charset-normalizer==3.4.3
 + click==8.2.1
 + click-didyoumean==0.3.1
 + click-plugins==1.1.1.2
 + click-repl==0.3.0
 + colorama==0.4.6
 + concurrent-log-handler==0.9.28
 + constantly==23.10.4
 + coverage==7.10.7
 + cryptography==44.0.3
 + daphne==4.2.1
 + dateparser==1.2.2
 + deprecated==1.2.18
 + deprecation==2.1.0
 + distlib==0.4.0
 + django==5.2.7
 + django-allauth==65.12.1
 + django-auditlog==3.3.0
 + django-cachalot==2.8.0
 + django-celery-results==2.6.0
 + django-compression-middleware==0.5.0
 + django-cors-headers==4.9.0
 + django-extensions==4.1
 + django-filter==25.2
 + django-guardian==3.2.0
 + django-multiselectfield==1.0.1
 + django-soft-delete==1.0.21
 + django-treenode==0.23.2
 + djangorestframework==3.16.1
 + djangorestframework-guardian==0.4.0
 + drf-spectacular==0.28.0
 + drf-spectacular-sidecar==2025.10.1
 + drf-writable-nested==0.7.2
 + execnet==2.1.1
 + factory-boy==3.3.3
 + faker==37.8.0
 + fido2==1.2.0
 + filelock==3.20.0
 + flower==2.0.1
 + ghp-import==2.1.0
 + gotenberg-client==0.12.0
 + granian==2.5.4
 + h11==0.16.0
 + h2==4.3.0
 + hiredis==3.2.1
 + hpack==4.1.0
 + httpcore==1.0.9
 + httpx==0.28.1
 + httpx-oauth==0.16.1
 + humanize==4.13.0
 + hyperframe==6.1.0
 + hyperlink==21.0.0
 + identify==2.6.14
 + idna==3.10
 + imagehash==4.3.2
 + imap-tools==1.11.0
 + img2pdf==0.6.1
 + incremental==24.7.2
 + inflection==0.5.1
 + iniconfig==2.1.0
 + inotify-simple==2.0.1
 + inotifyrecursive==0.3.5
 + jinja2==3.1.6
 + joblib==1.5.2
 + jsonschema==4.25.1
 + jsonschema-specifications==2025.9.1
 + kombu==5.5.4
 + langdetect==1.0.9
 + lxml==6.0.2
 + markdown==3.9
 + markdown-it-py==4.0.0
 + markupsafe==3.0.3
 + mdurl==0.1.2
 + mergedeep==1.3.4
 + mkdocs==1.6.1
 + mkdocs-get-deps==0.2.0
 + mkdocs-glightbox==0.5.2
 + mkdocs-material==9.7.0
 + mkdocs-material-extensions==1.3.1
 + msgpack==1.1.1
 + mysqlclient==2.2.7
 + nltk==3.9.2
 + nodeenv==1.9.1
 + numpy==2.3.3
 + oauthlib==3.3.1
 + ocrmypdf==16.12.0
 + packaging==25.0
 + paginate==0.5.7
 + pathspec==0.12.1
 + pathvalidate==3.3.1
 + pdf2image==1.17.0
 + pdfminer-six==20250506
 + pi-heif==1.1.0
 + pikepdf==10.0.2
 + pillow==11.3.0
 + platformdirs==4.4.0
 + pluggy==1.6.0
 + portalocker==3.2.0
 + pre-commit==4.4.0
 + pre-commit-uv==4.2.0
 + prometheus-client==0.23.1
 + prompt-toolkit==3.0.52
 + psycopg==3.2.12
 + psycopg-c==3.2.12
 + psycopg-pool==3.2.7
 + pyasn1==0.6.1
 + pyasn1-modules==0.4.2
 + pycparser==2.23
 + pygments==2.19.2
 + pyjwt==2.10.1
 + pymdown-extensions==10.16.1
 + pyopenssl==25.1.0
 + pytest==8.4.2
 + pytest-cov==7.0.0
 + pytest-django==4.11.1
 + pytest-env==1.2.0
 + pytest-httpx==0.35.0
 + pytest-mock==3.15.1
 + pytest-rerunfailures==16.1
 + pytest-sugar==1.1.1
 + pytest-xdist==3.8.0
 + python-dateutil==2.9.0.post0
 + python-dotenv==1.2.1
 + python-gnupg==0.5.5
 + python-ipware==3.0.0
 + python-magic==0.4.27
 + pytz==2025.2
 + pywavelets==1.9.0
 + pyyaml==6.0.3
 + pyyaml-env-tag==1.1
 + pyzbar==0.1.9
 + qrcode==8.2
 + rapidfuzz==3.14.3
 + redis==5.2.1
 + referencing==0.36.2
 + regex==2025.9.18
 + requests==2.32.5
 + rich==14.1.0
 + rpds-py==0.27.1
 + ruff==0.14.5
 + scikit-learn==1.7.2
 + scipy==1.16.2
 + selectolax==0.3.29
 + service-identity==24.2.0
 + setproctitle==1.3.7
 + setuptools==80.9.0
 + six==1.17.0
 + sniffio==1.3.1
 + sqlparse==0.5.3
 + termcolor==3.1.0
 + threadpoolctl==3.6.0
 + tika-client==0.10.0
 + tornado==6.5.2
 + tqdm==4.67.1
 + twisted==25.5.0
 + txaio==25.9.2
 + typing-extensions==4.15.0
 + tzdata==2025.2
 + tzlocal==5.3.1
 + uritemplate==4.2.0
 + urllib3==2.5.0
 + uv==0.9.3
 + uvloop==0.21.0
 + vine==5.1.0
 + virtualenv==20.34.0
 + watchdog==6.0.0
 + wcwidth==0.2.14
 + webencodings==0.5.1
 + whitenoise==6.11.0
 + whoosh-reloaded==2.7.5
 + wrapt==1.17.3
 + zope-interface==8.0.1
 + zstandard==0.25.0
 + zxing-cpp==2.3.0
Operations to perform:
  Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount
Running migrations:
  Applying documents.1069_workflowtrigger_filter_has_storage_path_and_more... OK
  Applying documents.1070_customfieldinstance_value_long_text_and_more... OK
  Applying documents.1071_tag_tn_ancestors_count_tag_tn_ancestors_pks_and_more... OK
  Applying documents.1072_workflowtrigger_filter_custom_field_query_and_more... OK
  Applying documents.1073_migrate_workflow_title_jinja... OK
  Applying documents.1074_workflowrun_deleted_at_workflowrun_restored_at_and_more... OK
  Applying guardian.0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more... OK
  ✔️   Paperless-ngx migration and update completed
  ✔️   Started all Paperless-ngx Services
  ✔️   Updated successfully!

And here is the cat of the consumer.service:

[Unit]
Description=Paperless consumer
Requires=redis.service

[Service]
WorkingDirectory=/opt/paperless/src
ExecStart=python3 manage.py document_consumer

[Install]
WantedBy=multi-user.target
root@paperless-ngx:/etc/systemd/system#

No idea what is going on.

@Feedy88 commented on GitHub (Nov 25, 2025): Here is a part of the update output, hope that is enough: ``` ✔️ Setup Ghostscript 10.06.0 ⏳ Updating Paperless-ngxUsing CPython 3.13.9 Creating virtual environment at: .venv Resolved 227 packages in 1.27s Built langdetect==1.0.9 Built img2pdf==0.6.1 Built mysqlclient==2.2.7 Built psycopg-c==3.2.12 Built django-allauth==65.12.1 Prepared 192 packages in 1m 18s Installed 192 packages in 1.30s + amqp==5.3.1 + anyio==4.11.0 + asgiref==3.9.2 + attrs==25.3.0 + autobahn==24.4.2 + automat==25.4.16 + babel==2.17.0 + backrefs==5.9 + billiard==4.2.2 + bleach==6.3.0 + brotli==1.1.0 + cached-property==2.0.1 + celery==5.5.3 + certifi==2025.8.3 + cffi==2.0.0 + cfgv==3.4.0 + channels==4.3.1 + channels-redis==4.3.0 + charset-normalizer==3.4.3 + click==8.2.1 + click-didyoumean==0.3.1 + click-plugins==1.1.1.2 + click-repl==0.3.0 + colorama==0.4.6 + concurrent-log-handler==0.9.28 + constantly==23.10.4 + coverage==7.10.7 + cryptography==44.0.3 + daphne==4.2.1 + dateparser==1.2.2 + deprecated==1.2.18 + deprecation==2.1.0 + distlib==0.4.0 + django==5.2.7 + django-allauth==65.12.1 + django-auditlog==3.3.0 + django-cachalot==2.8.0 + django-celery-results==2.6.0 + django-compression-middleware==0.5.0 + django-cors-headers==4.9.0 + django-extensions==4.1 + django-filter==25.2 + django-guardian==3.2.0 + django-multiselectfield==1.0.1 + django-soft-delete==1.0.21 + django-treenode==0.23.2 + djangorestframework==3.16.1 + djangorestframework-guardian==0.4.0 + drf-spectacular==0.28.0 + drf-spectacular-sidecar==2025.10.1 + drf-writable-nested==0.7.2 + execnet==2.1.1 + factory-boy==3.3.3 + faker==37.8.0 + fido2==1.2.0 + filelock==3.20.0 + flower==2.0.1 + ghp-import==2.1.0 + gotenberg-client==0.12.0 + granian==2.5.4 + h11==0.16.0 + h2==4.3.0 + hiredis==3.2.1 + hpack==4.1.0 + httpcore==1.0.9 + httpx==0.28.1 + httpx-oauth==0.16.1 + humanize==4.13.0 + hyperframe==6.1.0 + hyperlink==21.0.0 + identify==2.6.14 + idna==3.10 + imagehash==4.3.2 + imap-tools==1.11.0 + img2pdf==0.6.1 + incremental==24.7.2 + inflection==0.5.1 + iniconfig==2.1.0 + inotify-simple==2.0.1 + inotifyrecursive==0.3.5 + jinja2==3.1.6 + joblib==1.5.2 + jsonschema==4.25.1 + jsonschema-specifications==2025.9.1 + kombu==5.5.4 + langdetect==1.0.9 + lxml==6.0.2 + markdown==3.9 + markdown-it-py==4.0.0 + markupsafe==3.0.3 + mdurl==0.1.2 + mergedeep==1.3.4 + mkdocs==1.6.1 + mkdocs-get-deps==0.2.0 + mkdocs-glightbox==0.5.2 + mkdocs-material==9.7.0 + mkdocs-material-extensions==1.3.1 + msgpack==1.1.1 + mysqlclient==2.2.7 + nltk==3.9.2 + nodeenv==1.9.1 + numpy==2.3.3 + oauthlib==3.3.1 + ocrmypdf==16.12.0 + packaging==25.0 + paginate==0.5.7 + pathspec==0.12.1 + pathvalidate==3.3.1 + pdf2image==1.17.0 + pdfminer-six==20250506 + pi-heif==1.1.0 + pikepdf==10.0.2 + pillow==11.3.0 + platformdirs==4.4.0 + pluggy==1.6.0 + portalocker==3.2.0 + pre-commit==4.4.0 + pre-commit-uv==4.2.0 + prometheus-client==0.23.1 + prompt-toolkit==3.0.52 + psycopg==3.2.12 + psycopg-c==3.2.12 + psycopg-pool==3.2.7 + pyasn1==0.6.1 + pyasn1-modules==0.4.2 + pycparser==2.23 + pygments==2.19.2 + pyjwt==2.10.1 + pymdown-extensions==10.16.1 + pyopenssl==25.1.0 + pytest==8.4.2 + pytest-cov==7.0.0 + pytest-django==4.11.1 + pytest-env==1.2.0 + pytest-httpx==0.35.0 + pytest-mock==3.15.1 + pytest-rerunfailures==16.1 + pytest-sugar==1.1.1 + pytest-xdist==3.8.0 + python-dateutil==2.9.0.post0 + python-dotenv==1.2.1 + python-gnupg==0.5.5 + python-ipware==3.0.0 + python-magic==0.4.27 + pytz==2025.2 + pywavelets==1.9.0 + pyyaml==6.0.3 + pyyaml-env-tag==1.1 + pyzbar==0.1.9 + qrcode==8.2 + rapidfuzz==3.14.3 + redis==5.2.1 + referencing==0.36.2 + regex==2025.9.18 + requests==2.32.5 + rich==14.1.0 + rpds-py==0.27.1 + ruff==0.14.5 + scikit-learn==1.7.2 + scipy==1.16.2 + selectolax==0.3.29 + service-identity==24.2.0 + setproctitle==1.3.7 + setuptools==80.9.0 + six==1.17.0 + sniffio==1.3.1 + sqlparse==0.5.3 + termcolor==3.1.0 + threadpoolctl==3.6.0 + tika-client==0.10.0 + tornado==6.5.2 + tqdm==4.67.1 + twisted==25.5.0 + txaio==25.9.2 + typing-extensions==4.15.0 + tzdata==2025.2 + tzlocal==5.3.1 + uritemplate==4.2.0 + urllib3==2.5.0 + uv==0.9.3 + uvloop==0.21.0 + vine==5.1.0 + virtualenv==20.34.0 + watchdog==6.0.0 + wcwidth==0.2.14 + webencodings==0.5.1 + whitenoise==6.11.0 + whoosh-reloaded==2.7.5 + wrapt==1.17.3 + zope-interface==8.0.1 + zstandard==0.25.0 + zxing-cpp==2.3.0 Operations to perform: Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount Running migrations: Applying documents.1069_workflowtrigger_filter_has_storage_path_and_more... OK Applying documents.1070_customfieldinstance_value_long_text_and_more... OK Applying documents.1071_tag_tn_ancestors_count_tag_tn_ancestors_pks_and_more... OK Applying documents.1072_workflowtrigger_filter_custom_field_query_and_more... OK Applying documents.1073_migrate_workflow_title_jinja... OK Applying documents.1074_workflowrun_deleted_at_workflowrun_restored_at_and_more... OK Applying guardian.0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more... OK ✔️ Paperless-ngx migration and update completed ✔️ Started all Paperless-ngx Services ✔️ Updated successfully! ``` And here is the cat of the consumer.service: ``` [Unit] Description=Paperless consumer Requires=redis.service [Service] WorkingDirectory=/opt/paperless/src ExecStart=python3 manage.py document_consumer [Install] WantedBy=multi-user.target root@paperless-ngx:/etc/systemd/system# ``` No idea what is going on.
Author
Owner

@MickLesk commented on GitHub (Nov 25, 2025):

okay i found it

nano /etc/systemd/system/paperless-consumer.service

switch: ExecStart=python3 manage.py document_consumer
to: ExecStart=uv run -- python manage.py document_consumer

after this:
systemctl daemon-reload
systemctl restart paperless-consumer

or wait for merge of #9425 and use your snapshot and try again

@MickLesk commented on GitHub (Nov 25, 2025): okay i found it nano /etc/systemd/system/paperless-consumer.service switch: ExecStart=python3 manage.py document_consumer to: ExecStart=uv run -- python manage.py document_consumer after this: systemctl daemon-reload systemctl restart paperless-consumer or wait for merge of #9425 and use your snapshot and try again
Author
Owner

@Feedy88 commented on GitHub (Nov 25, 2025):

That worked, thanks for the help. Closing Bug.

@Feedy88 commented on GitHub (Nov 25, 2025): That worked, thanks for the help. Closing Bug.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#2065