POST JSONAPI object result 500 error

Created on 13 October 2022, almost 2 years ago
Updated 22 April 2024, 5 months ago

Problem/Motivation

When POSTing an JSONAPI, AssetNormalizer/PropertyNormalizer fire an exception

Steps to reproduce

POST to /jsonapi/node/page

{
    "data": {
        "type": "node--page",
        "attributes": {
            "title": "NEW page from JSON:API"
        }
    }
}

Result:
Cannot create an instance of \"Drupal\\Core\\TypedData\\Plugin\\DataType\\StringData\" from serialized data because its constructor requires parameter \"definition\" to be present.

Symfony\\Component\\Serializer\\Exception\\MissingConstructorArgumentsException: Cannot create an instance of \"Drupal\\Core\\TypedData\\Plugin\\DataType\\StringData\" from serialized data because its constructor requires parameter \"definition\" to be present. in /var/www/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php:497
Stack trace:
#0 /var/www/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php(241): Symfony\\Component\\Serializer\\Normalizer\\AbstractNormalizer->instantiateObject(Array, 'Drupal\\\\Core\\\\Typ...', Array, Object(ReflectionClass), false, 'api_json')
#1 /var/www/vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php(341): Symfony\\Component\\Serializer\\Normalizer\\AbstractObjectNormalizer->instantiateObject(Array, 'Drupal\\\\Core\\\\Typ...', Array, Object(ReflectionClass), false, 'api_json')
#2 /var/www/web/modules/contrib/cloudinary/modules/cloudinary_media_library_widget/src/Normalizer/AssetNormalizer.php(52): Symfony\\Component\\Serializer\\Normalizer\\AbstractObjectNormalizer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Typ...', 'api_json', Array)
#3 /var/www/vendor/symfony/serializer/Serializer.php(196): Drupal\\cloudinary_media_library_widget\\Normalizer\\AssetNormalizer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Typ...', 'api_json', Array)
#4 /var/www/web/core/modules/jsonapi/src/Serializer/Serializer.php(77): Symfony\\Component\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Typ...', 'api_json', Array)
#5 /var/www/web/core/modules/jsonapi/src/Normalizer/FieldItemNormalizer.php(104): Drupal\\jsonapi\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Typ...', 'api_json', Array)
#6 /var/www/web/core/modules/jsonapi/src/Normalizer/FieldItemNormalizer.php(126): Drupal\\jsonapi\\Normalizer\\FieldItemNormalizer->Drupal\\jsonapi\\Normalizer\\{closure}('value', 'NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Typ...', 'api_json', Array)
#7 /var/www/web/modules/contrib/jsonapi_extras/src/Normalizer/JsonApiNormalizerDecoratorBase.php(45): Drupal\\jsonapi\\Normalizer\\FieldItemNormalizer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Fie...', 'api_json', Array)
#8 /var/www/vendor/symfony/serializer/Serializer.php(196): Drupal\\jsonapi_extras\\Normalizer\\JsonApiNormalizerDecoratorBase->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Fie...', 'api_json', Array)
#9 /var/www/web/core/modules/jsonapi/src/Serializer/Serializer.php(75): Symfony\\Component\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Fie...', 'api_json', Array)
#10 /var/www/web/core/modules/jsonapi/src/Normalizer/FieldNormalizer.php(65): Drupal\\jsonapi\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', 'Drupal\\\\Core\\\\Fie...', 'api_json', Array)
#11 /var/www/vendor/symfony/serializer/Serializer.php(196): Drupal\\jsonapi\\Normalizer\\FieldNormalizer->denormalize('NEW hotel 4 fro...', '\\\\Drupal\\\\Core\\\\Fi...', 'api_json', Array)
#12 /var/www/web/core/modules/jsonapi/src/Serializer/Serializer.php(75): Symfony\\Component\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', '\\\\Drupal\\\\Core\\\\Fi...', 'api_json', Array)
#13 /var/www/web/core/modules/jsonapi/src/Normalizer/ContentEntityDenormalizer.php(85): Drupal\\jsonapi\\Serializer\\Serializer->denormalize('NEW hotel 4 fro...', '\\\\Drupal\\\\Core\\\\Fi...', 'api_json', Array)
#14 /var/www/web/core/modules/jsonapi/src/Normalizer/EntityDenormalizerBase.php(99): Drupal\\jsonapi\\Normalizer\\ContentEntityDenormalizer->prepareInput(Array, Object(Drupal\\jsonapi_extras\\ResourceType\\ConfigurableResourceType), 'api_json', Array)
#15 /var/www/web/modules/contrib/jsonapi_extras/src/Normalizer/JsonApiNormalizerDecoratorBase.php(45): Drupal\\jsonapi\\Normalizer\\EntityDenormalizerBase->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#16 /var/www/web/modules/contrib/jsonapi_extras/src/Normalizer/ContentEntityDenormalizer.php(16): Drupal\\jsonapi_extras\\Normalizer\\JsonApiNormalizerDecoratorBase->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#17 /var/www/vendor/symfony/serializer/Serializer.php(196): Drupal\\jsonapi_extras\\Normalizer\\ContentEntityDenormalizer->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#18 /var/www/web/core/modules/jsonapi/src/Serializer/Serializer.php(75): Symfony\\Component\\Serializer\\Serializer->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#19 /var/www/web/core/modules/jsonapi/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php(169): Drupal\\jsonapi\\Serializer\\Serializer->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#20 /var/www/vendor/symfony/serializer/Serializer.php(196): Drupal\\jsonapi\\Normalizer\\JsonApiDocumentTopLevelNormalizer->denormalize(Array, 'Drupal\\\\node\\\\Ent...', 'api_json', Array)
#21 /var/www/web/core/modules/jsonapi/src/Serializer/Serializer.php(75): Symfony\\Component\\Serializer\\Serializer->denormalize(Array, 'Drupal\\\\jsonapi\\\\...', 'api_json', Array)
#22 /var/www/web/core/modules/jsonapi/src/Controller/EntityResource.php(858): Drupal\\jsonapi\\Serializer\\Serializer->denormalize(Array, 'Drupal\\\\jsonapi\\\\...', 'api_json', Array)
#23 /var/www/web/core/modules/jsonapi/src/Controller/EntityResource.php(235): Drupal\\jsonapi\\Controller\\EntityResource->deserialize(Object(Drupal\\jsonapi_extras\\ResourceType\\ConfigurableResourceType), Object(Symfony\\Component\\HttpFoundation\\Request), 'Drupal\\\\jsonapi\\\\...')
#24 [internal function]: Drupal\\jsonapi\\Controller\\EntityResource->createIndividual(Object(Drupal\\jsonapi_extras\\ResourceType\\ConfigurableResourceType), Object(Symfony\\Component\\HttpFoundation\\Request))
#25 /var/www/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#26 /var/www/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->Drupal\\Core\\EventSubscriber\\{closure}()
#27 /var/www/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\\Core\\Render\\Renderer->executeInRenderContext(Object(Drupal\\Core\\Render\\RenderContext), Object(Closure))
#28 /var/www/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#29 /var/www/vendor/symfony/http-kernel/HttpKernel.php(159): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->Drupal\\Core\\EventSubscriber\\{closure}()
#30 /var/www/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)
#31 /var/www/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#32 /var/www/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\\Core\\StackMiddleware\\Session->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#33 /var/www/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\\Core\\StackMiddleware\\KernelPreHandle->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#34 /var/www/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\\page_cache\\StackMiddleware\\PageCache->pass(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#35 /var/www/vendor/asm89/stack-cors/src/Asm89/Stack/Cors.php(49): Drupal\\page_cache\\StackMiddleware\\PageCache->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#36 /var/www/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\\Stack\\Cors->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#37 /var/www/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\\Core\\StackMiddleware\\ReverseProxyMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#38 /var/www/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\\Core\\StackMiddleware\\NegotiationMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#39 /var/www/web/core/lib/Drupal/Core/DrupalKernel.php(709): Stack\\StackedHttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#40 /var/www/web/index.php(19): Drupal\\Core\\DrupalKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))
#41 {main}\n\nNext Symfony\\Component\\HttpKernel\\Exception\\HttpException: Cannot create an instance of \"Drupal\\Core\\TypedData\\Plugin\\DataType\\StringData\" from serialized data because its constructor requires parameter \"definition\" to be present. in /var/www/web/core/modules/jsonapi/src/EventSubscriber/DefaultExceptionSubscriber.php:49\nStack trace:
#0 [internal function]: Drupal\\jsonapi\\EventSubscriber\\DefaultExceptionSubscriber->onException(Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...', Object(Drupal\\Component\\EventDispatcher\\ContainerAwareEventDispatcher))
#1 /var/www/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(142): call_user_func(Array, Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...', Object(Drupal\\Component\\EventDispatcher\\ContainerAwareEventDispatcher))
#2 /var/www/vendor/symfony/http-kernel/HttpKernel.php(219): Drupal\\Component\\EventDispatcher\\ContainerAwareEventDispatcher->dispatch(Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...')
#3 /var/www/vendor/symfony/http-kernel/HttpKernel.php(92): Symfony\\Component\\HttpKernel\\HttpKernel->handleThrowable(Object(Symfony\\Component\\Serializer\\Exception\\MissingConstructorArgumentsException), Object(Symfony\\Component\\HttpFoundation\\Request), 1)
#4 /var/www/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#5 /var/www/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\\Core\\StackMiddleware\\Session->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#6 /var/www/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\\Core\\StackMiddleware\\KernelPreHandle->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#7 /var/www/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\\page_cache\\StackMiddleware\\PageCache->pass(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#8 /var/www/vendor/asm89/stack-cors/src/Asm89/Stack/Cors.php(49): Drupal\\page_cache\\StackMiddleware\\PageCache->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#9 /var/www/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\\Stack\\Cors->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#10 /var/www/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\\Core\\StackMiddleware\\ReverseProxyMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#11 /var/www/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\\Core\\StackMiddleware\\NegotiationMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#12 /var/www/web/core/lib/Drupal/Core/DrupalKernel.php(709): Stack\\StackedHttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#13 /var/www/web/index.php(19): Drupal\\Core\\DrupalKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))
#14 {main}
🐛 Bug report
Status

Needs review

Version

3.0

Component

Code

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024