Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0. #2

Open
opened 2025-09-01 11:40:02 +00:00 by fyksen · 3 comments

Describe the bug
Getting error when launching spotizerr with docker:

RuntimeError: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0.
2025-09-01 11:31:47 [ERROR] Database migration step failed early in startup: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0.
Traceback (most recent call last):
  File "/app/app.py", line 35, in <module>
    run_migrations_if_needed()
  File "/app/routes/migrations/runner.py", line 51, in run_migrations_if_needed
    MigrationV3_3_0.assert_config_version_is_3_3_0()
  File "/app/routes/migrations/v3_3_0.py", line 44, in assert_config_version_is_3_3_0
    raise RuntimeError(

.env:

###
### Main configuration file of the server. If you
### plan to have this only for personal use, you
### can leave the defaults as they are.
###
### If you plan on using for a server,
### see https://spotizerr.rtfd.io
###

# Interface to bind to. Unless you know what you're doing, don't change this
HOST=0.0.0.0

# Redis connection (external or internal).
# Host name 'redis' works with docker-compose.yml setup
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=<redacted>

# Set to true to filter out explicit content.
EXPLICIT_FILTER=false

# Optional: Sets the default file permissions for newly created files within the container.
UMASK=0022

# Whether to setup file permissions on startup. May improve performance on remote/slow filesystems
SKIP_SET_PERMISSIONS=false

###
### Multi-user settings, disabled by default.
###

# Enable authentication (i.e. multi-user mode).
ENABLE_AUTH=true

# Basic Authentication settings.
JWT_SECRET=long-random-text

# How much a session persists, in hours. 720h = 30 days.
JWT_EXPIRATION_HOURS=720

# Default admins creds, please change the password or delete this account after you create your own
DEFAULT_ADMIN_USERNAME=admin
DEFAULT_ADMIN_PASSWORD=admin123

# Whether to allow new users to register themselves or leave that only available for admins
DISABLE_REGISTRATION=true

# SSO Configuration
SSO_ENABLED=false
#SSO_BASE_REDIRECT_URI=http://127.0.0.1:7171/api/auth/sso/callback
#FRONTEND_URL=http://127.0.0.1:7171



# Log level for application logging.
# Possible values: debug, info, warning, error, critical
# Set to 'info' or 'warning' for general use. Use 'debug' for troubleshooting.
LOG_LEVEL=info

docker-compose.yml:

name: spotizerr
services:
  spotizerr:
    image: lavaforge.org/spotizerr/spotizerr:4.0.0
    user: "1000:1000" # Spotizerr user:group ids
    volumes:
    # Ensure these directories and the .cache file exist and are writable by the container user
    - /mnt/appdata/spotizerr/data:/app/data # data directory, contains config, creds, watch, history
    - /mnt/media/library/spotizerr:/app/downloads # downloads directory, contains downloaded files
    - /mnt/appdata/spotizerr/logs:/app/logs # logs directory, contains logs
    - /mnt/appdata/spotizerr/cache:/app/.cache # cache file
    ports:
    # Port to expose the app on
    - 7171:7171
    container_name: spotizerr-app
    restart: unless-stopped
    env_file:
    # Ensure you have a .env file in the root of the project, with the correct values
    - .env
    depends_on:
    - redis
  redis:
    image: redis:8.2.1-alpine
    container_name: spotizerr-redis
    restart: unless-stopped
    env_file:
    - .env
    volumes:
    - redis-data:/data
    command: sh -c 'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes'
volumes:
  redis-data:
    driver: local
**Describe the bug** Getting error when launching spotizerr with docker: ``` RuntimeError: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0. 2025-09-01 11:31:47 [ERROR] Database migration step failed early in startup: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0. Traceback (most recent call last): File "/app/app.py", line 35, in <module> run_migrations_if_needed() File "/app/routes/migrations/runner.py", line 51, in run_migrations_if_needed MigrationV3_3_0.assert_config_version_is_3_3_0() File "/app/routes/migrations/v3_3_0.py", line 44, in assert_config_version_is_3_3_0 raise RuntimeError( ``` .env: ``` ### ### Main configuration file of the server. If you ### plan to have this only for personal use, you ### can leave the defaults as they are. ### ### If you plan on using for a server, ### see https://spotizerr.rtfd.io ### # Interface to bind to. Unless you know what you're doing, don't change this HOST=0.0.0.0 # Redis connection (external or internal). # Host name 'redis' works with docker-compose.yml setup REDIS_HOST=redis REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD=<redacted> # Set to true to filter out explicit content. EXPLICIT_FILTER=false # Optional: Sets the default file permissions for newly created files within the container. UMASK=0022 # Whether to setup file permissions on startup. May improve performance on remote/slow filesystems SKIP_SET_PERMISSIONS=false ### ### Multi-user settings, disabled by default. ### # Enable authentication (i.e. multi-user mode). ENABLE_AUTH=true # Basic Authentication settings. JWT_SECRET=long-random-text # How much a session persists, in hours. 720h = 30 days. JWT_EXPIRATION_HOURS=720 # Default admins creds, please change the password or delete this account after you create your own DEFAULT_ADMIN_USERNAME=admin DEFAULT_ADMIN_PASSWORD=admin123 # Whether to allow new users to register themselves or leave that only available for admins DISABLE_REGISTRATION=true # SSO Configuration SSO_ENABLED=false #SSO_BASE_REDIRECT_URI=http://127.0.0.1:7171/api/auth/sso/callback #FRONTEND_URL=http://127.0.0.1:7171 # Log level for application logging. # Possible values: debug, info, warning, error, critical # Set to 'info' or 'warning' for general use. Use 'debug' for troubleshooting. LOG_LEVEL=info ``` docker-compose.yml: ``` name: spotizerr services: spotizerr: image: lavaforge.org/spotizerr/spotizerr:4.0.0 user: "1000:1000" # Spotizerr user:group ids volumes: # Ensure these directories and the .cache file exist and are writable by the container user - /mnt/appdata/spotizerr/data:/app/data # data directory, contains config, creds, watch, history - /mnt/media/library/spotizerr:/app/downloads # downloads directory, contains downloaded files - /mnt/appdata/spotizerr/logs:/app/logs # logs directory, contains logs - /mnt/appdata/spotizerr/cache:/app/.cache # cache file ports: # Port to expose the app on - 7171:7171 container_name: spotizerr-app restart: unless-stopped env_file: # Ensure you have a .env file in the root of the project, with the correct values - .env depends_on: - redis redis: image: redis:8.2.1-alpine container_name: spotizerr-redis restart: unless-stopped env_file: - .env volumes: - redis-data:/data command: sh -c 'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes' volumes: redis-data: driver: local ```

same problem.
@fyksen as a workaround create a main.json in your /mnt/appdata/spotizerr/data/config/ folder
with the following content:

{
    "version": "3.3.0"
}

I had another issue later where I had to manually add my clientId clientSecret to data/creds/search.json.

same problem. @fyksen as a workaround create a main.json in your /mnt/appdata/spotizerr/data/config/ folder with the following content: ``` { "version": "3.3.0" } ``` I had another issue later where I had to manually add my clientId clientSecret to data/creds/search.json.

Having same issue after switching to lavaforge.org/spotizerr/spotizerr:latest.

Error

2025-09-04 19:54:55 [ERROR] Database migration step failed early in startup: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0.
Traceback (most recent call last):
File "/app/app.py", line 35, in
run_migrations_if_needed()
File "/app/routes/migrations/runner.py", line 51, in run_migrations_if_needed
MigrationV3_3_0.assert_config_version_is_3_3_0()
File "/app/routes/migrations/v3_3_0.py", line 44, in assert_config_version_is_3_3_0
raise RuntimeError(
RuntimeError: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0.

Docker Compose

Changed docker image to lavaforge.
name: spotizerr
services:
spotizerr:
image: lavaforge.org/spotizerr/spotizerr:latest
volumes:
- ./data:/app/data
- ./downloads:/app/downloads
- ./logs:/app/logs
ports:
- 7171:7171
container_name: spotizerr-app
restart: unless-stopped
env_file:
- .env
depends_on:
- redis
redis:
image: redis:alpine
container_name: spotizerr-redis
restart: unless-stopped
env_file:
- .env
volumes:
- redis-data:/data
command: sh -c 'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes'
volumes:
redis-data:
driver: local

.env

Unchanged
HOST=0.0.0.0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=CHANGE_ME
EXPLICIT_FILTER=false
PUID=1000
PGID=1000
UMASK=0022
SKIP_SET_PERMISSIONS=false

main.json

Added "version": "3.3.0" to top of /data/config/main.json
{
"version": "3.3.0"
"service": "spotify",
"spotify": "Personal Spotify Account",
"deezer": "Personal Deezer Account",
"fallback": true,
"spotifyQuality": "HIGH",
"deezerQuality": "FLAC",
"realTime": true,
"customDirFormat": "%ar_album%/%album%",
"customTrackFormat": "%tracknum%. %music%",
"tracknumPadding": true,
"saveCover": true,
"maxConcurrentDownloads": 3,
"maxRetries": 3,
"retryDelaySeconds": 5,
"retryDelayIncrease": 5,
"convertTo": "",
"bitrate": "",
"artistSeparator": "; ",
"recursiveQuality": false,
"spotifyMetadata": true,
"separateTracksByUser": false,
"watch": {
"enabled": true,
"watchPollIntervalSeconds": 3600,
"maxTracksPerRun": 50,
"watchedArtistAlbumGroup": [
"album",
"single"
],
"delayBetweenPlaylistsSeconds": 2,
"delayBetweenArtistsSeconds": 5,
"useSnapshotIdChecking": true
},
"explicitFilter": false,
"threads": 4,
"path": "/downloads",
"skipExisting": true,
"m3u": false,
"hlsThreads": 8,
"track": "{artist_name}/{album_name}/{track_number} - {track_name}",
"album": "{artist_name}/{album_name}",
"playlist": "Playlists/{playlist_name}",
"compilation": "Compilations/{album_name}"
}

Having same issue after switching to lavaforge.org/spotizerr/spotizerr:latest. ### Error 2025-09-04 19:54:55 [ERROR] Database migration step failed early in startup: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0. Traceback (most recent call last): File "/app/app.py", line 35, in <module> run_migrations_if_needed() File "/app/routes/migrations/runner.py", line 51, in run_migrations_if_needed MigrationV3_3_0.assert_config_version_is_3_3_0() File "/app/routes/migrations/v3_3_0.py", line 44, in assert_config_version_is_3_3_0 raise RuntimeError( RuntimeError: Missing 'version' in data/config/main.json. Please update your configuration to 3.3.0. ### Docker Compose _Changed docker image to lavaforge._ name: spotizerr services: spotizerr: image: lavaforge.org/spotizerr/spotizerr:latest volumes: - ./data:/app/data - ./downloads:/app/downloads - ./logs:/app/logs ports: - 7171:7171 container_name: spotizerr-app restart: unless-stopped env_file: - .env depends_on: - redis redis: image: redis:alpine container_name: spotizerr-redis restart: unless-stopped env_file: - .env volumes: - redis-data:/data command: sh -c 'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes' volumes: redis-data: driver: local ### .env _Unchanged_ HOST=0.0.0.0 REDIS_HOST=redis REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD=CHANGE_ME EXPLICIT_FILTER=false PUID=1000 PGID=1000 UMASK=0022 SKIP_SET_PERMISSIONS=false ### main.json _Added `"version": "3.3.0"` to top of /data/config/main.json_ { "version": "3.3.0" "service": "spotify", "spotify": "Personal Spotify Account", "deezer": "Personal Deezer Account", "fallback": true, "spotifyQuality": "HIGH", "deezerQuality": "FLAC", "realTime": true, "customDirFormat": "%ar_album%/%album%", "customTrackFormat": "%tracknum%. %music%", "tracknumPadding": true, "saveCover": true, "maxConcurrentDownloads": 3, "maxRetries": 3, "retryDelaySeconds": 5, "retryDelayIncrease": 5, "convertTo": "", "bitrate": "", "artistSeparator": "; ", "recursiveQuality": false, "spotifyMetadata": true, "separateTracksByUser": false, "watch": { "enabled": true, "watchPollIntervalSeconds": 3600, "maxTracksPerRun": 50, "watchedArtistAlbumGroup": [ "album", "single" ], "delayBetweenPlaylistsSeconds": 2, "delayBetweenArtistsSeconds": 5, "useSnapshotIdChecking": true }, "explicitFilter": false, "threads": 4, "path": "/downloads", "skipExisting": true, "m3u": false, "hlsThreads": 8, "track": "{artist_name}/{album_name}/{track_number} - {track_name}", "album": "{artist_name}/{album_name}", "playlist": "Playlists/{playlist_name}", "compilation": "Compilations/{album_name}" }

reviving this project under spotizerr-phoenix: https://lavaforge.org/spotizerrphoenix/spotizerr-phoenix

reviving this project under spotizerr-phoenix: https://lavaforge.org/spotizerrphoenix/spotizerr-phoenix - not a part of the original team, just love this project - should be back in a working state - follow the new repos here: https://lavaforge.org/spotizerrphoenix - refer to the origin post here: https://lavaforge.org/spotizerr/spotizerr/issues/19
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
4 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
spotizerr/spotizerr#2
No description provided.