Skip to content

Fix quality profile settings not persisting to quality_profiles table - #1103

Open
Jean-LucPicard72 wants to merge 7 commits into
Nezreka:devfrom
Jean-LucPicard72:fix/quality-profile-missing-columns
Open

Fix quality profile settings not persisting to quality_profiles table#1103
Jean-LucPicard72 wants to merge 7 commits into
Nezreka:devfrom
Jean-LucPicard72:fix/quality-profile-missing-columns

Conversation

@Jean-LucPicard72

Copy link
Copy Markdown

Summary

_write_default_quality_profile_row() only writes 6 of the 14 columns the Settings → Quality page can edit. Toggling acoustid_required, downsample_enabled, deep_audio_verify, replace_lower_quality, or any of the lossy_copy_* fields returns {"success": true} from POST /api/quality-profile, but the write-through to the is_default=1 row in quality_profiles — which get_quality_profile() / GET /api/quality-profile actually reads — silently drops those columns. The UI/API keeps reporting the old value and the setting never takes effect.

Repro:

  1. POST /api/quality-profile with replace_lower_quality: true (full profile object) → {"success": true}
  2. GET /api/quality-profilereplace_lower_quality is still false
  3. Confirmed directly in quality_profiles table: the row's replace_lower_quality column is unchanged.

Fix

Adds the missing columns (acoustid_required, downsample_enabled, deep_audio_verify, replace_lower_quality, lossy_copy_enabled, lossy_copy_codec, lossy_copy_bitrate, lossy_copy_delete_original) to the UPDATE statement and parameter tuple, mirroring the same coercion style already used for the existing columns.

Test plan

  • Manually verified: patched the same statement locally, POST a profile with replace_lower_quality: true, confirmed GET /api/quality-profile now returns true and the quality_profiles row reflects it.
  • Would appreciate a maintainer sanity-check on the lossy_copy_bitrate type coercion (stored as TEXT in schema; profile payload can send it as either a string or number depending on client).

Nezreka and others added 7 commits July 22, 2026 14:53
_write_default_quality_profile_row() only wrote 6 of the 14 columns the
Settings -> Quality page can edit. Toggling acoustid_required,
downsample_enabled, deep_audio_verify, replace_lower_quality, or any of
the lossy_copy_* fields reported success from POST /api/quality-profile,
but the write-through to the is_default=1 row (which
get_quality_profile()/GET /api/quality-profile actually reads) silently
dropped those columns, so the UI/API kept reporting the old value and
the setting never took effect.

Adds the missing columns to the UPDATE statement and parameter tuple.
@Nezreka

Nezreka commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Sorry I will be reviewing PR soon, trying to wrap up this react migration.

@Nezreka
Nezreka changed the base branch from main to dev August 9, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants