diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt index 9aae8628..6e26db3c 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/OnlineCheckProvider.kt @@ -93,6 +93,16 @@ class OnlineCheckProvider( res.type = TicketCheckProvider.CheckResult.Type.INVALID } else { val response = responseObj.data!! + + if (responseObj.response.code == 400 && !response.has("status")) { + if (response.has("lists")) { + // Kind of a special case handling, but regular problem for users and just + // passing through the error messages from the server is not generally helpful + // since user's don't know what a primary key is etc + throw CheckException("Check-in list not found") + } + } + val status = response.getString("status") if ("ok" == status) { res.type = TicketCheckProvider.CheckResult.Type.VALID diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt index 2671eeac..81ac73c0 100644 --- a/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/check/ProxyCheckProvider.kt @@ -150,7 +150,9 @@ class ProxyCheckProvider(private val config: ConfigStore, httpClientFactory: Htt e.printStackTrace() TicketCheckProvider.CheckResult(TicketCheckProvider.CheckResult.Type.ERROR, e.message) } catch (e: CheckException) { - TicketCheckProvider.CheckResult(TicketCheckProvider.CheckResult.Type.ERROR, e.message) + val r = TicketCheckProvider.CheckResult(TicketCheckProvider.CheckResult.Type.ERROR, e.message) + r.reasonExplanation = e.message + r } }