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