PostgrestError is not instanceof Error, so catch blocks were falling through to generic messages. Now extracts .message and .details from Supabase errors for better debugging.