Skip to content

[BUG] [DdownloadCom Account Plugin] Error when entering invalid/wrong account information #76

@keqas

Description

@keqas

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When adding a Ddownload account in pyload with invalid user or even valid user with wrong password an exception occurs.
After that the settings tab is not usable anymore because it's completely overlaid by the error log.
The account data has to be removed from accounts.cfg manually and pyload has to be restarted.

Image

Expected Behavior

at least exception handling

Steps To Reproduce

  1. Add new Ddownload premium account (Settings/Accounts)
  2. Enter invalid user (e.g. "abc") with no password or enter valid username with wrong password
  3. pyload UI "crashes": settings tab is completely overlaid by error log

Environment

- OS: Synology DSM 7.2.2-72806 Update 4
- How docker service was installed: Synology DSM package manager ("Container Manager")

CPU architecture

x86-64

Docker creation

exported container settings (JSON)

{
   "CapAdd" : null,
   "CapDrop" : null,
   "cmd" : "",
   "cmd_v2" : "",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : false,
   "enable_service_portal" : false,
   "enabled" : true,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      {
         "key" : "PS1",
         "value" : "$(whoami)@$(hostname):$(pwd)\\$ "
      },
      {
         "key" : "HOME",
         "value" : "/config"
      },
      {
         "key" : "TERM",
         "value" : "xterm"
      },
      {
         "key" : "S6_CMD_WAIT_FOR_SERVICES_MAXTIME",
         "value" : "0"
      },
      {
         "key" : "S6_VERBOSITY",
         "value" : "1"
      },
      {
         "key" : "S6_STAGE2_HOOK",
         "value" : "/docker-mods"
      },
      {
         "key" : "VIRTUAL_ENV",
         "value" : "/lsiopy"
      },
      {
         "key" : "LSIO_FIRST_PARTY",
         "value" : "true"
      },
      {
         "key" : "PGID",
         "value" : "100"
      },
      {
         "key" : "PUID",
         "value" : "1029"
      },
      {
         "key" : "TZ",
         "value" : "Europe/Berlin"
      }
   ],
   "exporting" : false,
   "id" : "61e644fb8751fdcee36d178b9a3804e198497060c908f2de6c541dc4663859d6",
   "image" : "linuxserver/pyload-ng:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "labels" : {
      "build_version" : "Linuxserver.io version:- 0.5.0b3.dev93-ls199 Build-date:- 2025-10-17T19:26:10+00:00",
      "maintainer" : "aptalca",
      "org.opencontainers.image.authors" : "linuxserver.io",
      "org.opencontainers.image.created" : "2025-10-17T19:26:10+00:00",
      "org.opencontainers.image.description" : "[pyLoad](https://pyload.net/) is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.",
      "org.opencontainers.image.documentation" : "https://docs.linuxserver.io/images/docker-pyload-ng",
      "org.opencontainers.image.licenses" : "GPL-3.0-only",
      "org.opencontainers.image.ref.name" : "52f6b687ca8a3ef51300e97f50300faf0c9d0461",
      "org.opencontainers.image.revision" : "52f6b687ca8a3ef51300e97f50300faf0c9d0461",
      "org.opencontainers.image.source" : "https://github.com/linuxserver/docker-pyload-ng",
      "org.opencontainers.image.title" : "Pyload-ng",
      "org.opencontainers.image.url" : "https://github.com/linuxserver/docker-pyload-ng/packages",
      "org.opencontainers.image.vendor" : "linuxserver.io",
      "org.opencontainers.image.version" : "0.5.0b3.dev93-ls199"
   },
   "links" : [],
   "memory_limit" : 0,
   "name" : "linuxserver-pyload-ng",
   "network" : [
      {
         "driver" : "bridge",
         "name" : "bridge"
      }
   ],
   "network_mode" : "bridge",
   "port_bindings" : [
      {
         "container_port" : 8000,
         "host_port" : 8000,
         "type" : "tcp"
      },
      {
         "container_port" : 9666,
         "host_port" : 9666,
         "type" : "tcp"
      }
   ],
   "privileged" : false,
   "service_portals" : [],
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : false,
   "version" : 2,
   "volume_bindings" : [
      {
         "host_volume_file" : "/docker/pyload-ng",
         "is_directory" : true,
         "mount_point" : "/config",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/MEDIA/!DOWNLOADS/pyLoad",
         "is_directory" : true,
         "mount_point" : "/downloads",
         "type" : "rw"
      }
   ]
}

Container logs

[migrations] started
[migrations] no migrations found
usermod: no changes
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝

   Brought to you by linuxserver.io
───────────────────────────────────────

To support the app dev(s) visit:
pyLoad: https://PayPal.Me/nitzo2001/0usd

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1029
User GID:    100
───────────────────────────────────────
Linuxserver.io version: 0.5.0b3.dev93-ls199
Build-date: 2025-10-17T19:26:10+00:00
───────────────────────────────────────

[custom-init] No custom files found, skipping...
crond[153]: crond (busybox 1.37.0) started, log level 5
crond[153]: user:root entry:*/15        *       *       *       *       run-parts /etc/periodic/15min
crond[153]: user:root entry:0   *       *       *       *       run-parts /etc/periodic/hourly
crond[153]: user:root entry:0   2       *       *       *       run-parts /etc/periodic/daily
crond[153]: user:root entry:0   3       *       *       6       run-parts /etc/periodic/weekly
crond[153]: user:root entry:0   5       1       *       *       run-parts /etc/periodic/monthly
[2025-10-18 14:52:48]  INFO                pyload  *** Welcome to pyLoad 0.5.0 ***
[2025-10-18 14:52:48]  WARNING             pyload  Download folder was specified from the commandline
[2025-10-18 14:52:48]  DEBUG               pyload  Indexing plugins...
[2025-10-18 14:52:49]  INFO                pyload  Activated addons: ClickNLoad, ExternalScripts, ExtractArchive, UnSkipOnFail, UserAgentSwitcher
[2025-10-18 14:52:49]  INFO                pyload  Deactivate addons: AndroidPhoneNotify, AntiCaptcha, AntiStandby, AntiVirus, AppriseNotify, BypassCaptcha, Captcha9Kw, Checksum, CloudFlareDdos, DeathByCaptcha, DeleteFinished, DiscordNotifier, DownloadScheduler, ExpertDecoders, HotFolder, IRC, ImageTyperz, JustPremium, LinkFilter, LogMarker, MergeFiles, MultiHome, PushBullet, PushOver, RestartFailed, SkipRev, TORRENT, TransmissionRPC, UpdateManager, WindowsPhoneNotify, XFileSharing, XMPP
[2025-10-18 14:52:49]  DEBUG               pyload  Starting core...
[2025-10-18 14:52:49]  DEBUG               pyload  Debug level: DEBUG
[2025-10-18 14:52:49]  DEBUG               pyload  Setup language...
[2025-10-18 14:52:49]  DEBUG               pyload  Setup permissions...
[2025-10-18 14:52:49]  INFO                pyload  User directory: /config
[2025-10-18 14:52:49]  INFO                pyload  Cache directory: /tmp/pyLoad
[2025-10-18 14:52:49]  INFO                pyload  Storage directory: /downloads
[2025-10-18 14:52:49]  INFO                pyload  Storage free space: 442.07 GiB
[2025-10-18 14:52:49]  DEBUG               pyload  Setup network...
[2025-10-18 14:52:49]  INFO                pyload  Activating accounts...
[2025-10-18 14:52:49]  INFO                pyload  ACCOUNT PremiumTo: Adding user `GIZ*******`...
[2025-10-18 14:52:49]  DEBUG               pyload  ACCOUNT PremiumTo: Reached login timeout for user `GIZ****`
[2025-10-18 14:52:49]  INFO                pyload  ACCOUNT PremiumTo: Login user `GIZ****`...
[2025-10-18 14:52:49]  DEBUG               pyload  ACCOUNT PremiumTo: LOAD URL http://api.premium.to/api/2/traffic.php | get={'userid': 'GIZ****', 'apikey': '**********'} | post={} | ref=True | cookies=True | just_header=False | decode=True | multipart=False | redirect=True | req=None
[2025-10-18 14:52:49]  INFO                pyload  ACCOUNT PremiumTo: Grabbing account info for user `GIZ****`...
[2025-10-18 14:52:49]  DEBUG               pyload  ACCOUNT PremiumTo: LOAD URL http://api.premium.to/api/2/traffic.php | get={'userid': 'GIZ****', 'apikey': '**********'} | post={} | ref=True | cookies=True | just_header=False | decode=True | multipart=False | redirect=True | req=None
[2025-10-18 14:52:49]  DEBUG               pyload  ACCOUNT PremiumTo: Account info for user `GIZ****`: {'login': {'password': '**********', 'stats': [1, 0], 'timestamp': 1760791969.4281905, 'valid': True}, 'data': {'login': 'GIZ****', 'options': {'limit_dl': ['8']}, 'plugin': <Account PremiumTo>, 'premium': True, 'trafficleft': 634005658042, 'type': 'PremiumTo', 'validuntil': -1}}
[2025-10-18 14:52:49]  INFO                pyload  Activating plugins...
[2025-10-18 14:52:49]  DEBUG               pyload  ADDON ExternalScripts: No script found under folder `pyload_start`
[2025-10-18 14:52:49]  DEBUG               pyload  ADDON ExtractArchive: Found HjSplit 0.02 | Found UnRar 7.13 | Found SevenZip 24.09 | Found UnZip 3.12.12 | Found UnTar 3.12.12
[2025-10-18 14:52:49]  INFO          pyload.webui  Starting webserver: http://0.0.0.0:8000
[2025-10-18 14:52:49]  DEBUG               pyload  *** pyLoad is up and running ***
Connection to localhost (127.0.0.1) 8000 port [tcp/*] succeeded!
[ls.io-init] done.
[2025-10-18 14:52:50]  DEBUG               pyload  ACCOUNT PremiumTo: LOAD URL http://api.premium.to/api/2/hosts.php | get={'userid': 'GIZ****', 'apikey': '**********'} | post={} | ref=True | cookies=True | just_header=False | decode=True | multipart=False | redirect=True | req=None
[2025-10-18 14:52:50]  DEBUG               pyload  ACCOUNT PremiumTo: Downloader list for user `GIZ****`: ['alfafile.net', 'ddownload.com', 'filer.net', 'filestore.to', 'onefichier.com', 'rapidgator.net', 'turbobit.net']
[2025-10-18 14:52:50]  DEBUG               pyload  ACCOUNT PremiumTo: Overwritten downloaders: AlfafileNet, DdownloadCom, FileStoreTo, FilerNet, OneFichierCom, RapidgatorNet, TurbobitNet
[2025-10-18 14:52:54]  DEBUG               pyload  ADDON ClickNLoad: Backend found on http://127.0.0.1:8000
[2025-10-18 14:52:54]  INFO                pyload  ADDON ClickNLoad: Proxy listening on 0.0.0.0:9666
crond[153]: user:root entry:*/15        *       *       *       *       run-parts /etc/periodic/15min
crond[153]: user:root entry:0   *       *       *       *       run-parts /etc/periodic/hourly
crond[153]: user:root entry:0   2       *       *       *       run-parts /etc/periodic/daily
crond[153]: user:root entry:0   3       *       *       6       run-parts /etc/periodic/weekly
crond[153]: user:root entry:0   5       1       *       *       run-parts /etc/periodic/monthly
crond[153]: wakeup dt=12
crond[153]: file root:
crond[153]:  line run-parts /etc/periodic/15min
crond[153]:  line run-parts /etc/periodic/hourly
crond[153]:  line run-parts /etc/periodic/daily
crond[153]:  line run-parts /etc/periodic/weekly
crond[153]:  line run-parts /etc/periodic/monthly
[2025-10-18 14:53:06]  INFO                pyload  ACCOUNT DdownloadCom: Adding user `abc*******`...
[2025-10-18 14:53:06]  DEBUG               pyload  ACCOUNT DdownloadCom: **********R**********e**********a**********c**********h**********e**********d********** **********l**********o**********g**********i**********n********** **********t**********i**********m**********e**********o**********u**********t********** **********f**********o**********r********** **********u**********s**********e**********r********** **********`**********a**********b**********c******************************************************`**********
[2025-10-18 14:53:06]  INFO                pyload  ACCOUNT DdownloadCom: **********L**********o**********g**********i**********n********** **********u**********s**********e**********r********** **********`**********a**********b**********c******************************************************`**********.**********.**********.**********
[2025-10-18 14:53:06]  DEBUG               pyload  ACCOUNT DdownloadCom: **********L**********O**********A**********D********** **********U**********R**********L********** **********h**********t**********t**********p**********:**********/**********/**********d**********d**********o**********w**********n**********l**********o**********a**********d**********.**********c**********o**********m**********/**********l**********o**********g**********i**********n**********.**********h**********t**********m**********l********** | **********g**********e**********t**********=**********{**********}********** | **********p**********o**********s**********t**********=**********{**********}********** | **********r**********e**********f**********=**********T**********r**********u**********e********** | **********c**********o**********o**********k**********i**********e**********s**********=**********T**********r**********u**********e********** | **********j**********u**********s**********t**********_**********h**********e**********a**********d**********e**********r**********=**********F**********a**********l**********s**********e********** | **********d**********e**********c**********o**********d**********e**********=**********T**********r**********u**********e********** | **********m**********u**********l**********t**********i**********p**********a**********r**********t**********=**********F**********a**********l**********s**********e********** | **********r**********e**********d**********i**********r**********e**********c**********t**********=**********T**********r**********u**********e********** | **********r**********e**********q**********=**********N**********o**********n**********e**********
[2025-10-18 14:53:06]  DEBUG               pyload  ACCOUNT DdownloadCom: **********L**********O**********A**********D********** **********U**********R**********L********** **********h**********t**********t**********p**********s**********:**********/**********/**********d**********d**********o**********w**********n**********l**********o**********a**********d**********.**********c**********o**********m**********/********** | **********g**********e**********t**********=**********{**********}********** | **********p**********o**********s**********t**********=**********{**********'**********o**********p**********'**********:********** **********'**********l**********o**********g**********i**********n**********'**********,********** **********'**********t**********o**********k**********e**********n**********'**********:********** **********'**********b**********9**********b**********b**********d**********1**********3**********5**********d**********0**********5**********f**********3**********3**********0**********1**********8**********9**********0**********d**********a**********5**********8**********7**********e**********c**********1**********f**********3**********0**********6**********8**********'**********,********** **********'**********r**********a**********n**********d**********'**********:********** **********'**********'**********,********** **********'**********r**********e**********d**********i**********r**********e**********c**********t**********'**********:********** **********'**********h**********t**********t**********p**********:**********/**********/**********d**********d**********o**********w**********n**********l**********o**********a**********d**********.**********c**********o**********m**********/**********l**********o**********g**********i**********n**********.**********h**********t**********m**********l**********'**********,********** **********'**********l**********o**********g**********i**********n**********'**********:********** **********'**********a**********b**********c******************************************************'**********,********** **********'**********p**********a**********s**********s**********w**********o**********r**********d**********'**********:********** **********'**********'**********}********** | **********r**********e**********f**********=**********T**********r**********u**********e********** | **********c**********o**********o**********k**********i**********e**********s**********=**********T**********r**********u**********e********** | **********j**********u**********s**********t**********_**********h**********e**********a**********d**********e**********r**********=**********F**********a**********l**********s**********e********** | **********d**********e**********c**********o**********d**********e**********=**********T**********r**********u**********e********** | **********m**********u**********l**********t**********i**********p**********a**********r**********t**********=**********F**********a**********l**********s**********e********** | **********r**********e**********d**********i**********r**********e**********c**********t**********=**********T**********r**********u**********e********** | **********r**********e**********q**********=**********N**********o**********n**********e**********
[2025-10-18 14:53:06]  INFO                pyload  ACCOUNT DdownloadCom: **********C**********h**********e**********c**********k**********i**********n**********g********** **********f**********o**********r********** **********l**********i**********n**********k********** **********e**********r**********r**********o**********r**********s**********.**********.**********.**********
[2025-10-18 14:53:06]  ERROR               pyload  ACCOUNT DdownloadCom: **********C**********o**********u**********l**********d********** **********n**********o**********t********** **********l**********o**********g**********i**********n********** **********u**********s**********e**********r********** **********`**********a**********b**********c******************************************************`********** | Incorrect Login or Password
[2025-10-18 14:53:06]  DEBUG         pyload.webui  1 validation error for AccountInfo
premium
  Input should be a valid boolean [type=bool_type, input_value=None, input_type=NoneType]
    For further information visit https://errors.pydantic.dev/2.10/v/bool_type
Traceback (most recent call last):
  File "/lsiopy/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.12/site-packages/pyload/webui/app/helpers.py", line 203, in wrapper
    response = func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.12/site-packages/pyload/webui/app/blueprints/app_blueprint.py", line 197, in settings
    for userdata in api.get_accounts(False):
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/lsiopy/lib/python3.12/site-packages/pyload/core/api/__init__.py", line 1216, in get_accounts
    AccountInfo(
  File "/lsiopy/lib/python3.12/site-packages/pydantic/main.py", line 214, in __init__
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for AccountInfo
premium
  Input should be a valid boolean [type=bool_type, input_value=None, input_type=NoneType]
    For further information visit https://errors.pydantic.dev/2.10/v/bool_type

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions