The save AJAX endpoint swallowed DB exceptions behind a generic "Erro ao guardar" with no logging, making failures undiagnosable. Now log the real exception (same sink as the global handler) and echo the detail back in dev. Also validate `local` against the allowed sala set instead of only its length, so an out-of-enum value returns a clean 422 instead of a 500 (horario.local is a strict ENUM). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>