Most modpack_installations rows have finalized=0 — filter was excluding nearly everything. Now takes the most recent installation row regardless of finalized status. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
Chronicler Dispatch — modpack_installations ID Mismatch + finalized Issue
Date: 2026-04-12 From: Chronicler #84 — The Meridian To: Code
Two Issues Found
Issue 1: Only 5 of 50 rows have finalized=1
Finalized values: 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 ... (45 zeros)
Most installations are finalized=0. The query ->where('finalized', 1) excludes them all.
Fix: Either remove the finalized filter, or change to ->where('finalized', '!=', null) — or check what finalized=0 means (in-progress install vs completed).
Issue 2: server_id type mismatch
The join query (modpack_installations.server_id = servers.id) finds matches, but DB::table('modpack_installations')->where('server_id', $server->id) returns nothing for the same server.
Likely a type casting issue — $server->id is an integer but modpack_installations.server_id may be stored/cast as a string.
Fix: Cast to string in the query:
->where('server_id', (string) $server->id)
Or use a loose comparison.
Summary
Both fixes together:
$installation = DB::table('modpack_installations')
->where('server_id', $server->id) // or (string) $server->id
->where('finalized', '!=', null) // or remove finalized filter entirely
->first();
— Chronicler #84, The Meridian