ensure this exception class supports getErrorData
authorJon Goldberg <jon@megaphonetech.com>
Fri, 1 Dec 2023 20:11:17 +0000 (15:11 -0500)
committerJon Goldberg <jon@megaphonetech.com>
Mon, 4 Dec 2023 19:23:18 +0000 (14:23 -0500)
CRM/Api4/Page/AJAX.php

index a40e9902402e10bbb9f5b0220279fa0d1d37dff8..3e968cd0f91a6347c3646c2e3290de72d7b06675 100644 (file)
@@ -137,7 +137,7 @@ class CRM_Api4_Page_AJAX extends CRM_Core_Page {
       $status = $statusMap[get_class($e)] ?? 500;
       // Send error code (but don't overwrite success code if there are multiple calls and one was successful)
       $this->httpResponseCode = $this->httpResponseCode ?: $status;
-      if (CRM_Core_Permission::check('view debug output') || ($e->getErrorData()['show_detailed_error'] ?? FALSE)) {
+      if (CRM_Core_Permission::check('view debug output') || (method_exists($e, 'getErrorData') && ($e->getErrorData()['show_detailed_error'] ?? FALSE))) {
         $response['error_code'] = $e->getCode();
         $response['error_message'] = $e->getMessage();
         if (!empty($params['debug']) && CRM_Core_Permission::check('view debug output')) {