I am having a similar issue but I am using the default api name. Whenever a validation rule that I have added fails it falls over with a 500 error. This is Laravel 8 and version 3.
This is the error stack:
CloudCreativity\LaravelJsonApi\Exceptions\ValidationException: JSON API error in file /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Exceptions/ValidationException.php on line 49
0 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Requests/ValidatedRequest.php(273): CloudCreativity\LaravelJsonApi\Exceptions\ValidationException::create(Object(CloudCreativity\LaravelJsonApi\Validation\Validator))
1 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Requests/ValidatedRequest.php(262): CloudCreativity\LaravelJsonApi\Http\Requests\ValidatedRequest->failedValidation(Object(CloudCreativity\LaravelJsonApi\Validation\Validator))
2 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Requests/CreateResource.php(69): CloudCreativity\LaravelJsonApi\Http\Requests\ValidatedRequest->passes(Object(CloudCreativity\LaravelJsonApi\Validation\Validator))
3 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Requests/ValidatedRequest.php(231): CloudCreativity\LaravelJsonApi\Http\Requests\CreateResource->validateDocument()
4 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php(30): CloudCreativity\LaravelJsonApi\Http\Requests\ValidatedRequest->validateResolved()
5 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Container/Container.php(1141): Illuminate\Foundation\Providers\FormRequestServiceProvider->Illuminate\Foundation\Providers{closure}(Object(CloudCreativity\LaravelJsonApi\Http\Requests\CreateResource), Object(Illuminate\Foundation\Application))
6 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Container/Container.php(1105): Illuminate\Container\Container->fireCallbackArray(Object(CloudCreativity\LaravelJsonApi\Http\Requests\CreateResource), Array)
7 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Container/Container.php(1090): Illuminate\Container\Container->fireAfterResolvingCallbacks('CloudCreativity...', Object(CloudCreativity\LaravelJsonApi\Http\Requests\CreateResource))
8 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Container/Container.php(711): Illuminate\Container\Container->fireResolvingCallbacks('CloudCreativity...', Object(CloudCreativity\LaravelJsonApi\Http\Requests\CreateResource))
9 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(796): Illuminate\Container\Container->resolve('CloudCreativity...', Array, true)
10 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Container/Container.php(637): Illuminate\Foundation\Application->resolve('CloudCreativity...', Array)
11 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(781): Illuminate\Container\Container->make('CloudCreativity...', Array)
12 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(79): Illuminate\Foundation\Application->make('CloudCreativity...')
13 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(48): Illuminate\Routing\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Object(stdClass))
14 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(28): Illuminate\Routing\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))
15 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(41): Illuminate\Routing\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\Http\Controllers\Api\OrdersController), 'create')
16 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Route.php(255): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Api\OrdersController), 'create')
17 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\Routing\Route->runController()
18 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(691): Illuminate\Routing\Route->run()
19 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))
20 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/NegotiateContent.php(102): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
21 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): CloudCreativity\LaravelJsonApi\Http\Middleware\NegotiateContent->handle(Object(Illuminate\Http\Request), Object(Closure))
22 /var/www/html/webservices.brewers.co.uk/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/BootJsonApi.php(82): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
23 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): CloudCreativity\LaravelJsonApi\Http\Middleware\BootJsonApi->handle(Object(Illuminate\Http\Request), Object(Closure), 'default')
24 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
25 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
26 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
27 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(103): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
28 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(55): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\Http\Request), Object(Closure), 'api', Object(Closure))
29 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), 'api')
30 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
31 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(693): Illuminate\Pipeline\Pipeline->then(Object(Closure))
32 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(668): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
33 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(634): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
34 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
35 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
36 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}(Object(Illuminate\Http\Request))
37 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
38 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
39 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
40 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
41 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
42 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
43 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(87): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
44 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
45 /var/www/html/webservices.brewers.co.uk/vendor/fruitcake/laravel-cors/src/HandleCors.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
46 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
47 /var/www/html/webservices.brewers.co.uk/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
48 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
49 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))
50 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then(Object(Closure))
51 /var/www/html/webservices.brewers.co.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
52 /var/www/html/webservices.brewers.co.uk/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
53 {main}
Most helpful comment
@brewers-dev-phil can you share your Exception handler and confirm you've followed the installation instructions for what needs adding to the exception handler?
https://laravel-json-api.readthedocs.io/en/latest/installation/#exception-handling
All the tests for validation exceptions are passing in Laravel 8, so I suspect it's something to do with your set up.