diff --git a/jam-ui/src/store/features/mediaSlice.js b/jam-ui/src/store/features/mediaSlice.js index 4c3f7254b..42835b20e 100644 --- a/jam-ui/src/store/features/mediaSlice.js +++ b/jam-ui/src/store/features/mediaSlice.js @@ -87,11 +87,27 @@ export const downloadJamTrack = createAsyncThunk( throw new Error(`Mixdown "${mixdown.name}" has no packages available`); } + // Debug: Log package structure to understand field names + console.log('[JamTrack] Available packages for mixdown:', mixdown.name); + console.log('[JamTrack] Looking for: file_type=ogg, encrypt_type=jkz, sample_rate=', sampleRate); + mixdown.packages.forEach((pkg, idx) => { + console.log(`[JamTrack] Package ${idx}:`, { + id: pkg.id, + file_type: pkg.file_type, + fileType: pkg.fileType, + encrypt_type: pkg.encrypt_type, + encryptType: pkg.encryptType, + sample_rate: pkg.sample_rate, + sampleRate: pkg.sampleRate + }); + }); + // pickMyPackage logic: find compatible package (ogg, jkz, matching sample rate) + // Try both snake_case and camelCase field names const compatiblePackage = mixdown.packages.find(pkg => - pkg.file_type === 'ogg' && - pkg.encrypt_type === 'jkz' && - pkg.sample_rate === sampleRate + (pkg.file_type === 'ogg' || pkg.fileType === 'ogg') && + (pkg.encrypt_type === 'jkz' || pkg.encryptType === 'jkz') && + (pkg.sample_rate === sampleRate || pkg.sampleRate === sampleRate) ); if (!compatiblePackage) {