Skip to content

[BUG] speedtest-tracker v1.14.5-ls161 version ran in to error 500 #79

Closed as not planned

Description

@vdr-pty

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

After update to the latest v1.14.5-ls161 version ran in to error 500

Image

Downlograde to the amd64-v1.14.5-ls160 the login page comes up no issues:

Image

Expected Behavior

Show Login Page

Steps To Reproduce

After update to the latest v1.14.5-ls161 version ran in to error 500

Image

Downlograde to the amd64-v1.14.5-ls160 the login page comes up no issues:

Image

Environment

- OS:Unraid 7.3.1
- How docker service was installed: 29.5.2, build 79eb04c

CPU architecture

x86-64

Docker creation

docker run
  -d
  --name='speedtest-tracker'
  --net='bridge'
  -e TZ="America/Bogota"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="srvunraid"
  -e HOST_CONTAINERNAME="speedtest-tracker"
  -e 'APP_KEY'='*****************************************************'
  -e 'APP_URL'='https:***********************************'
  -e 'DB_CONNECTION'='sqlite'
  -e 'SPEEDTEST_SCHEDULE'='0 */8 * * *'
  -e 'SPEEDTEST_SERVERS'='31830'
  -e 'DB_HOST'=''
  -e 'DB_PORT'=''
  -e 'DB_DATABASE'=''
  -e 'DB_USERNAME'=''
  -e 'DB_PASSWORD'=''
  -e 'DISPLAY_TIMEZONE'='America/Panama'
  -e 'PRUNE_RESULTS_OLDER_THAN'='90'
  -e 'MAIL_MAILER'='smtp'
  -e 'MAIL_HOST'='smtp.gmail.com'
  -e 'MAIL_PORT'='465'
  -e 'MAIL_USERNAME'='*******************************'
  -e 'MAIL_PASSWORD'='************************'
  -e 'MAIL_ENCRYPTION'='tls'
  -e 'MAIL_FROM_ADDRESS'='*********************************'
  -e 'MAIL_FROM_NAME'='HOME Speedtest Tracker'
  -e 'APP_TIMEZONE'='America/Panama'
  -e 'PUBLIC_DASHBOARD'='false'
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:6004]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/speedtest-tracker-logo.png'
  -p '6004:80/tcp'
  -v '/mnt/user/appdata/speedtest-tracker':'/config':'rw' 'lscr.io/linuxserver/speedtest-tracker:latest'

9432528f051a46712ec7bac844a08c1df973a394e1d4ba40f07bd0174ba61873

The command finished successfully!

Container logs

[2026-07-10 16:15:01] production.ERROR: SQLSTATE[HY000] [14] unable to open database file (Connection: sqlite, Database: , SQL: select * from "cache" where "key" in (laravel-cache-illuminate:schedule:paused)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 14): SQLSTATE[HY000] [14] unable to open database file (Connection: sqlite, Database: , SQL: select * from \"cache\" where \"key\" in (laravel-cache-illuminate:schedule:paused)) at /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:843)
[stacktrace]
#0 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(799): Illuminate\\Database\\Connection->runQueryCallback()
#1 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(412): Illuminate\\Database\\Connection->run()
#2 /app/www/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3573): Illuminate\\Database\\Connection->select()
#3 /app/www/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3557): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /app/www/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(142): Illuminate\\Database\\Query\\Builder->get()
#5 /app/www/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(117): Illuminate\\Cache\\DatabaseStore->many()
#6 /app/www/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(138): Illuminate\\Cache\\DatabaseStore->get()
#7 /app/www/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(303): Illuminate\\Cache\\Repository->get()
#8 /app/www/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(120): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->isPaused()
#9 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#10 /app/www/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#11 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#12 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#13 /app/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#14 /app/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(280): Illuminate\\Container\\Container->call()
#15 /app/www/vendor/symfony/console/Command/Command.php(291): Illuminate\\Console\\Command->execute()
#16 /app/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(249): Symfony\\Component\\Console\\Command\\Command->run()
#17 /app/www/vendor/symfony/console/Application.php(1107): Illuminate\\Console\\Command->run()
#18 /app/www/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#19 /app/www/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#20 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#21 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#22 /app/www/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#23 {main}
[previous exception] [object] (PDOException(code: 14): SQLSTATE[HY000] [14] unable to open database file at /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)
[stacktrace]
#0 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(67): PDO::connect()
#1 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php(21): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(227): Illuminate\\Database\\Connectors\\SQLiteConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->{closure:Illuminate\\Database\\Connectors\\ConnectionFactory::createPdoResolverWithoutHosts():227}()
#5 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1281): call_user_func()
#6 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1319): Illuminate\\Database\\Connection->getPdo()
#7 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(528): Illuminate\\Database\\Connection->getReadPdo()
#8 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(421): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(832): Illuminate\\Database\\Connection->{closure:Illuminate\\Database\\Connection::select():412}()
#10 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(799): Illuminate\\Database\\Connection->runQueryCallback()
#11 /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(412): Illuminate\\Database\\Connection->run()
#12 /app/www/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3573): Illuminate\\Database\\Connection->select()
#13 /app/www/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3557): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /app/www/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(142): Illuminate\\Database\\Query\\Builder->get()
#15 /app/www/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php(117): Illuminate\\Cache\\DatabaseStore->many()
#16 /app/www/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(138): Illuminate\\Cache\\DatabaseStore->get()
#17 /app/www/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(303): Illuminate\\Cache\\Repository->get()
#18 /app/www/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(120): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->isPaused()
#19 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Console\\Scheduling\\ScheduleRunCommand->handle()
#20 /app/www/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#21 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#22 /app/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#23 /app/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call()
#24 /app/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(280): Illuminate\\Container\\Container->call()
#25 /app/www/vendor/symfony/console/Command/Command.php(291): Illuminate\\Console\\Command->execute()
#26 /app/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(249): Symfony\\Component\\Console\\Command\\Command->run()
#27 /app/www/vendor/symfony/console/Application.php(1107): Illuminate\\Console\\Command->run()
#28 /app/www/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()
#29 /app/www/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun()
#30 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#31 /app/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()
#32 /app/www/artisan(16): Illuminate\\Foundation\\Application->handleCommand()
#33 {main}
"} 
In Connection.php line 843:
                                                                               
  SQLSTATE[HY000] [14] unable to open database file (Connection: sqlite, Data  
  base: , SQL: select * from "cache" where "key" in (laravel-cache-illuminate  
  :schedule:paused))                                                           
                                                                               
In Connector.php line 67:
                                                     
  SQLSTATE[HY000] [14] unable to open database file

Activity

  1. github-actions commented on Jul 10, 2026

    @github-actions

    Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

  2. changed the title [-][BUG] speedtest-tracker[/-] [+][BUG] speedtest-tracker v1.14.5-ls161 version ran in to error 500[/+] on Jul 10, 2026
  3. vdr-pty commented on Jul 10, 2026

    @vdr-pty
    Author

    IA Diagnostic:

    Look at the ls160 → ls161 changelog:

    LinuxServer Changes: Rebase to 3.24 by @thespad in #78

    The app itself didn't change (both are speedtest-tracker v1.14.5). The only difference between the working build and the broken one is the base image: ghcr.io/linuxserver/baseimage-alpine-nginx:3.22 → 3.24.
    This lines up perfectly with what you showed me earlier:

    Your broken Dockerfile (ls161): FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.24 and installs php85-* packages
    Your working package list (ls160): shows alpine-release 3.22.4-r0 and php84-pdo_sqlite, php84-fpm, etc.

    So the rebase to Alpine 3.24 pulled in PHP 8.5 as the default/available PHP package set, replacing PHP 8.4 — and that's what's breaking SQLite cache access on scheduler runs. This is very likely a known regression in the LSIO image, not something wrong with your setup. Alpine 3.24 is brand new and PHP 8.5 packaging in Alpine has had rough edges (differences in default php-fpm pool config, open_basedir, or how pdo_sqlite gets loaded).

  4. lsaranto commented on Jul 11, 2026

    @lsaranto

    Workaround that doesn't require rolling back to ls160:

    Explicitly set DB_DATABASE to the actual sqlite path instead of leaving it blank:

    DB_DATABASE=/config/database.sqlite
    

    Root cause as far as I can tell: config/database.php resolves the sqlite path via env('DB_DATABASE', database_path('database.sqlite')). Laravel's env() only falls back to the default when the variable is truly unset — if it's present but empty (which is exactly what happens when DB_DATABASE= is declared blank, e.g. via the Unraid template's optional postgres/mysql fields), it returns the empty string instead of the default. That's been the case for years and normally doesn't matter, but something in the PHP 8.4 → 8.5 jump in this rebase (Alpine 3.22 → 3.24) changed how PDO/pdo_sqlite handles being handed an empty filename — on 8.4 it apparently tolerated it, on 8.5 it throws SQLSTATE[HY000] [14] unable to open database file.

    Setting DB_DATABASE explicitly sidesteps the whole issue regardless of which PHP version ends up in the image, since the value is never empty. Confirmed working on v1.14.5-ls161 (PHP 8.5.8) without needing to downgrade.

    (Diagnosed with help from an AI assistant, verified against my own container's logs and config.)

  5. vdr-pty commented on Jul 11, 2026

    @vdr-pty
    Author

    Workaround that doesn't require rolling back to ls160:

    Explicitly set DB_DATABASE to the actual sqlite path instead of leaving it blank:

    DB_DATABASE=/config/database.sqlite
    

    Root cause as far as I can tell: config/database.php resolves the sqlite path via env('DB_DATABASE', database_path('database.sqlite')). Laravel's env() only falls back to the default when the variable is truly unset — if it's present but empty (which is exactly what happens when DB_DATABASE= is declared blank, e.g. via the Unraid template's optional postgres/mysql fields), it returns the empty string instead of the default. That's been the case for years and normally doesn't matter, but something in the PHP 8.4 → 8.5 jump in this rebase (Alpine 3.22 → 3.24) changed how PDO/pdo_sqlite handles being handed an empty filename — on 8.4 it apparently tolerated it, on 8.5 it throws SQLSTATE[HY000] [14] unable to open database file.

    Setting DB_DATABASE explicitly sidesteps the whole issue regardless of which PHP version ends up in the image, since the value is never empty. Confirmed working on v1.14.5-ls161 (PHP 8.5.8) without needing to downgrade.

    (Diagnosed with help from an AI assistant, verified against my own container's logs and config.)

    Works fine:

    -e 'DB_DATABASE'='/config/database.sqlite'

    Image Image
  6. agarkauskas commented on Jul 13, 2026

    @agarkauskas

    Workaround that doesn't require rolling back to ls160:

    Explicitly set DB_DATABASE to the actual sqlite path instead of leaving it blank:

    DB_DATABASE=/config/database.sqlite
    

    Root cause as far as I can tell: config/database.php resolves the sqlite path via env('DB_DATABASE', database_path('database.sqlite')). Laravel's env() only falls back to the default when the variable is truly unset — if it's present but empty (which is exactly what happens when DB_DATABASE= is declared blank, e.g. via the Unraid template's optional postgres/mysql fields), it returns the empty string instead of the default. That's been the case for years and normally doesn't matter, but something in the PHP 8.4 → 8.5 jump in this rebase (Alpine 3.22 → 3.24) changed how PDO/pdo_sqlite handles being handed an empty filename — on 8.4 it apparently tolerated it, on 8.5 it throws SQLSTATE[HY000] [14] unable to open database file.

    Setting DB_DATABASE explicitly sidesteps the whole issue regardless of which PHP version ends up in the image, since the value is never empty. Confirmed working on v1.14.5-ls161 (PHP 8.5.8) without needing to downgrade.

    (Diagnosed with help from an AI assistant, verified against my own container's logs and config.)

    Workaround was successful here as well - Unraid 7.3.2 - Thanks!

  7. cobalt027 commented on Aug 1, 2026

    @cobalt027

    I am having the same issue. Going back to lscr.io/linuxserver/speedtest-tracker:v1.14.5-ls160 fixes the issue. I dont think I can use the workaround because i have my speedtest pointing to a mysql database running in another container.

    Image
  8. LinuxServer-CI commented on Sep 1, 2026

    @LinuxServer-CI
    Contributor

    This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.

  9. moved this from Issues to Done in Issue & PR Trackeron Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions