From 9e441213be5bdbd1ac045780b0b767dba30519b5 Mon Sep 17 00:00:00 2001 From: Moritz Date: Fri, 12 Dec 2025 19:02:22 +0100 Subject: [PATCH] feat: improve error handling in settings validation for default_membership_fee_type_id --- lib/membership/setting.ex | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/membership/setting.ex b/lib/membership/setting.ex index 13e7411..602eab9 100644 --- a/lib/membership/setting.ex +++ b/lib/membership/setting.ex @@ -152,10 +152,23 @@ defmodule Mv.Membership.Setting do {:ok, _} -> :ok - {:error, _} -> + {:error, %Ash.Error.Invalid{errors: [%Ash.Error.Query.NotFound{} | _]}} -> {:error, field: :default_membership_fee_type_id, message: "Membership fee type not found"} + + {:error, err} -> + # Log unexpected errors (DB timeout, connection errors, etc.) + require Logger + + Logger.warning( + "Unexpected error when validating default_membership_fee_type_id: #{inspect(err)}" + ) + + # Return generic error to user + {:error, + field: :default_membership_fee_type_id, + message: "Could not validate membership fee type"} end else # Optional, can be nil