On Drupal 8.5.0, with the last dev version of JSONAPI.
Standard install profile, a create a basic page with only a title.
If I run the command in Postman I obtain the following result.
curl -X GET \
http://site1.entity-share.lxc/jsonapi/node/page \
-H 'cache-control: no-cache' \
-H 'content-type: application/vnd.api+json' \
-H 'postman-token: 06439aaf-c8bb-d652-20cc-e46de881aec0'
<br />
<font size='1'>
<table class='xdebug-error xe-fatal-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr>
<th align='left' bgcolor='#f57900' colspan="5">
<span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Call to a member function normalize() on null in /project/www/modules/contrib/jsonapi/src/Normalizer/FieldItemNormalizer.php on line
<i>54</i>
</th>
</tr>
<tr>
<th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th>
</tr>
<tr>
<th align='center' bgcolor='#eeeeec'>#</th>
<th align='left' bgcolor='#eeeeec'>Time</th>
<th align='left' bgcolor='#eeeeec'>Memory</th>
<th align='left' bgcolor='#eeeeec'>Function</th>
<th align='left' bgcolor='#eeeeec'>Location</th>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>1</td>
<td bgcolor='#eeeeec' align='center'>0.0002</td>
<td bgcolor='#eeeeec' align='right'>232184</td>
<td bgcolor='#eeeeec'>{main}( )</td>
<td title='/project/www/index.php' bgcolor='#eeeeec'>../index.php
<b>:</b>0
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>2</td>
<td bgcolor='#eeeeec' align='center'>0.0046</td>
<td bgcolor='#eeeeec' align='right'>1582392</td>
<td bgcolor='#eeeeec'>Drupal\Core\DrupalKernel->handle( )</td>
<td title='/project/www/index.php' bgcolor='#eeeeec'>../index.php
<b>:</b>19
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>3</td>
<td bgcolor='#eeeeec' align='center'>0.0183</td>
<td bgcolor='#eeeeec' align='right'>3459512</td>
<td bgcolor='#eeeeec'>Stack\StackedHttpKernel->handle( )</td>
<td title='/project/www/core/lib/Drupal/Core/DrupalKernel.php' bgcolor='#eeeeec'>../DrupalKernel.php
<b>:</b>657
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>4</td>
<td bgcolor='#eeeeec' align='center'>0.0183</td>
<td bgcolor='#eeeeec' align='right'>3459624</td>
<td bgcolor='#eeeeec'>Drupal\Core\StackMiddleware\NegotiationMiddleware->handle( )</td>
<td title='/project/vendor/stack/builder/src/Stack/StackedHttpKernel.php' bgcolor='#eeeeec'>../StackedHttpKernel.php
<b>:</b>23
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>5</td>
<td bgcolor='#eeeeec' align='center'>0.0184</td>
<td bgcolor='#eeeeec' align='right'>3466112</td>
<td bgcolor='#eeeeec'>Drupal\webprofiler\StackMiddleware\WebprofilerMiddleware->handle( )</td>
<td title='/project/www/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php' bgcolor='#eeeeec'>../NegotiationMiddleware.php
<b>:</b>50
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>6</td>
<td bgcolor='#eeeeec' align='center'>0.0184</td>
<td bgcolor='#eeeeec' align='right'>3472248</td>
<td bgcolor='#eeeeec'>Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle( )</td>
<td title='/project/www/modules/contrib/devel/webprofiler/src/StackMiddleware/WebprofilerMiddleware.php' bgcolor='#eeeeec'>../WebprofilerMiddleware.php
<b>:</b>38
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>7</td>
<td bgcolor='#eeeeec' align='center'>0.0184</td>
<td bgcolor='#eeeeec' align='right'>3472672</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\StackMiddleware\FormatSetter->handle( )</td>
<td title='/project/www/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php' bgcolor='#eeeeec'>../ReverseProxyMiddleware.php
<b>:</b>47
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>8</td>
<td bgcolor='#eeeeec' align='center'>0.0189</td>
<td bgcolor='#eeeeec' align='right'>3492816</td>
<td bgcolor='#eeeeec'>Drupal\page_cache\StackMiddleware\PageCache->handle( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/StackMiddleware/FormatSetter.php' bgcolor='#eeeeec'>../FormatSetter.php
<b>:</b>40
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>9</td>
<td bgcolor='#eeeeec' align='center'>0.0190</td>
<td bgcolor='#eeeeec' align='right'>3494400</td>
<td bgcolor='#eeeeec'>Drupal\page_cache\StackMiddleware\PageCache->lookup( )</td>
<td title='/project/www/core/modules/page_cache/src/StackMiddleware/PageCache.php' bgcolor='#eeeeec'>../PageCache.php
<b>:</b>75
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>10</td>
<td bgcolor='#eeeeec' align='center'>0.0196</td>
<td bgcolor='#eeeeec' align='right'>3500488</td>
<td bgcolor='#eeeeec'>Drupal\page_cache\StackMiddleware\PageCache->fetch( )</td>
<td title='/project/www/core/modules/page_cache/src/StackMiddleware/PageCache.php' bgcolor='#eeeeec'>../PageCache.php
<b>:</b>121
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>11</td>
<td bgcolor='#eeeeec' align='center'>0.0197</td>
<td bgcolor='#eeeeec' align='right'>3500568</td>
<td bgcolor='#eeeeec'>Drupal\Core\StackMiddleware\KernelPreHandle->handle( )</td>
<td title='/project/www/core/modules/page_cache/src/StackMiddleware/PageCache.php' bgcolor='#eeeeec'>../PageCache.php
<b>:</b>184
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>12</td>
<td bgcolor='#eeeeec' align='center'>0.0250</td>
<td bgcolor='#eeeeec' align='right'>3805904</td>
<td bgcolor='#eeeeec'>Drupal\Core\StackMiddleware\Session->handle( )</td>
<td title='/project/www/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php' bgcolor='#eeeeec'>../KernelPreHandle.php
<b>:</b>47
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>13</td>
<td bgcolor='#eeeeec' align='center'>0.0269</td>
<td bgcolor='#eeeeec' align='right'>3961648</td>
<td bgcolor='#eeeeec'>Symfony\Component\HttpKernel\HttpKernel->handle( )</td>
<td title='/project/www/core/lib/Drupal/Core/StackMiddleware/Session.php' bgcolor='#eeeeec'>../Session.php
<b>:</b>57
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>14</td>
<td bgcolor='#eeeeec' align='center'>0.0270</td>
<td bgcolor='#eeeeec' align='right'>3962584</td>
<td bgcolor='#eeeeec'>Symfony\Component\HttpKernel\HttpKernel->handleRaw( )</td>
<td title='/project/vendor/symfony/http-kernel/HttpKernel.php' bgcolor='#eeeeec'>../HttpKernel.php
<b>:</b>68
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>15</td>
<td bgcolor='#eeeeec' align='center'>0.2570</td>
<td bgcolor='#eeeeec' align='right'>18217128</td>
<td bgcolor='#eeeeec'>Symfony\Component\HttpKernel\HttpKernel->filterResponse( )</td>
<td title='/project/vendor/symfony/http-kernel/HttpKernel.php' bgcolor='#eeeeec'>../HttpKernel.php
<b>:</b>173
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>16</td>
<td bgcolor='#eeeeec' align='center'>0.2570</td>
<td bgcolor='#eeeeec' align='right'>18222952</td>
<td bgcolor='#eeeeec'>Drupal\webprofiler\EventDispatcher\TraceableEventDispatcher->dispatch( )</td>
<td title='/project/vendor/symfony/http-kernel/HttpKernel.php' bgcolor='#eeeeec'>../HttpKernel.php
<b>:</b>191
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>17</td>
<td bgcolor='#eeeeec' align='center'>0.2589</td>
<td bgcolor='#eeeeec' align='right'>18346120</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\EventSubscriber\ResourceResponseSubscriber->onResponse( )</td>
<td title='/project/www/modules/contrib/devel/webprofiler/src/EventDispatcher/TraceableEventDispatcher.php' bgcolor='#eeeeec'>../TraceableEventDispatcher.php
<b>:</b>76
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>18</td>
<td bgcolor='#eeeeec' align='center'>0.2589</td>
<td bgcolor='#eeeeec' align='right'>18346400</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\EventSubscriber\ResourceResponseSubscriber->renderResponseBody( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/EventSubscriber/ResourceResponseSubscriber.php' bgcolor='#eeeeec'>../ResourceResponseSubscriber.php
<b>:</b>166
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>19</td>
<td bgcolor='#eeeeec' align='center'>0.2589</td>
<td bgcolor='#eeeeec' align='right'>18348328</td>
<td bgcolor='#eeeeec'>Drupal\Core\Render\Renderer->executeInRenderContext( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/EventSubscriber/ResourceResponseSubscriber.php' bgcolor='#eeeeec'>../ResourceResponseSubscriber.php
<b>:</b>221
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>20</td>
<td bgcolor='#eeeeec' align='center'>0.2589</td>
<td bgcolor='#eeeeec' align='right'>18348376</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\EventSubscriber\ResourceResponseSubscriber->Drupal\jsonapi\EventSubscriber\{closure}( )</td>
<td title='/project/www/core/lib/Drupal/Core/Render/Renderer.php' bgcolor='#eeeeec'>../Renderer.php
<b>:</b>582
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>21</td>
<td bgcolor='#eeeeec' align='center'>0.2589</td>
<td bgcolor='#eeeeec' align='right'>18348880</td>
<td bgcolor='#eeeeec'>Symfony\Component\Serializer\Serializer->serialize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/EventSubscriber/ResourceResponseSubscriber.php' bgcolor='#eeeeec'>../ResourceResponseSubscriber.php
<b>:</b>219
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>22</td>
<td bgcolor='#eeeeec' align='center'>0.2590</td>
<td bgcolor='#eeeeec' align='right'>18349744</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Serializer\Serializer->normalize( )</td>
<td title='/project/vendor/symfony/serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>116
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>23</td>
<td bgcolor='#eeeeec' align='center'>0.2593</td>
<td bgcolor='#eeeeec' align='right'>18351768</td>
<td bgcolor='#eeeeec'>Symfony\Component\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>46
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>24</td>
<td bgcolor='#eeeeec' align='center'>0.2595</td>
<td bgcolor='#eeeeec' align='right'>18351928</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer->normalize( )</td>
<td title='/project/vendor/symfony/serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>143
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>25</td>
<td bgcolor='#eeeeec' align='center'>0.2596</td>
<td bgcolor='#eeeeec' align='right'>18352920</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer->buildNormalizerValue( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php' bgcolor='#eeeeec'>../JsonApiDocumentTopLevelNormalizer.php
<b>:</b>199
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>26</td>
<td bgcolor='#eeeeec' align='center'>0.2598</td>
<td bgcolor='#eeeeec' align='right'>18355984</td>
<td bgcolor='#eeeeec'>
<a href='http://www.php.net/function.array-map' target='_new'>array_map</a>
( )
</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php' bgcolor='#eeeeec'>../JsonApiDocumentTopLevelNormalizer.php
<b>:</b>247
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>27</td>
<td bgcolor='#eeeeec' align='center'>0.2598</td>
<td bgcolor='#eeeeec' align='right'>18356584</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer->Drupal\jsonapi\Normalizer\{closure}( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php' bgcolor='#eeeeec'>../JsonApiDocumentTopLevelNormalizer.php
<b>:</b>247
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>28</td>
<td bgcolor='#eeeeec' align='center'>0.2598</td>
<td bgcolor='#eeeeec' align='right'>18356584</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php' bgcolor='#eeeeec'>../JsonApiDocumentTopLevelNormalizer.php
<b>:</b>246
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>29</td>
<td bgcolor='#eeeeec' align='center'>0.2599</td>
<td bgcolor='#eeeeec' align='right'>18356584</td>
<td bgcolor='#eeeeec'>Symfony\Component\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>46
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>30</td>
<td bgcolor='#eeeeec' align='center'>0.2599</td>
<td bgcolor='#eeeeec' align='right'>18356712</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi_extras\Normalizer\ContentEntityNormalizer->normalize( )</td>
<td title='/project/vendor/symfony/serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>143
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>31</td>
<td bgcolor='#eeeeec' align='center'>0.2599</td>
<td bgcolor='#eeeeec' align='right'>18356920</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\EntityNormalizer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi_extras/src/Normalizer/EntityNormalizerTrait.php' bgcolor='#eeeeec'>../EntityNormalizerTrait.php
<b>:</b>62
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>32</td>
<td bgcolor='#eeeeec' align='center'>0.2667</td>
<td bgcolor='#eeeeec' align='right'>18589768</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\EntityNormalizer->serializeField( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/EntityNormalizer.php' bgcolor='#eeeeec'>../EntityNormalizer.php
<b>:</b>99
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>33</td>
<td bgcolor='#eeeeec' align='center'>0.2668</td>
<td bgcolor='#eeeeec' align='right'>18589768</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/EntityNormalizer.php' bgcolor='#eeeeec'>../EntityNormalizer.php
<b>:</b>198
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>34</td>
<td bgcolor='#eeeeec' align='center'>0.2670</td>
<td bgcolor='#eeeeec' align='right'>18589768</td>
<td bgcolor='#eeeeec'>Symfony\Component\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>46
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>35</td>
<td bgcolor='#eeeeec' align='center'>0.2671</td>
<td bgcolor='#eeeeec' align='right'>18589944</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\FieldNormalizer->normalize( )</td>
<td title='/project/vendor/symfony/serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>143
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>36</td>
<td bgcolor='#eeeeec' align='center'>0.2674</td>
<td bgcolor='#eeeeec' align='right'>18592496</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\FieldNormalizer->normalizeFieldItems( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/FieldNormalizer.php' bgcolor='#eeeeec'>../FieldNormalizer.php
<b>:</b>44
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>37</td>
<td bgcolor='#eeeeec' align='center'>0.2674</td>
<td bgcolor='#eeeeec' align='right'>18593912</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Normalizer/FieldNormalizer.php' bgcolor='#eeeeec'>../FieldNormalizer.php
<b>:</b>96
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>38</td>
<td bgcolor='#eeeeec' align='center'>0.2674</td>
<td bgcolor='#eeeeec' align='right'>18593912</td>
<td bgcolor='#eeeeec'>Symfony\Component\Serializer\Serializer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi/src/Serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>46
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>39</td>
<td bgcolor='#eeeeec' align='center'>0.2675</td>
<td bgcolor='#eeeeec' align='right'>18594048</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi_extras\Normalizer\FieldItemNormalizer->normalize( )</td>
<td title='/project/vendor/symfony/serializer/Serializer.php' bgcolor='#eeeeec'>../Serializer.php
<b>:</b>143
</td>
</tr>
<tr>
<td bgcolor='#eeeeec' align='center'>40</td>
<td bgcolor='#eeeeec' align='center'>0.2675</td>
<td bgcolor='#eeeeec' align='right'>18594152</td>
<td bgcolor='#eeeeec'>Drupal\jsonapi\Normalizer\FieldItemNormalizer->normalize( )</td>
<td title='/project/www/modules/contrib/jsonapi_extras/src/Normalizer/FieldItemNormalizer.php' bgcolor='#eeeeec'>../FieldItemNormalizer.php
<b>:</b>66
</td>
</tr>
</table>
</font>
As there have been a lot of changes recently in JSON API. Is there something new to update?
Comments
Comment #2
gabesullice@Grimreaper, it's likely something needs to be updated in JSON API Extras, it looks like the stack trace points there. We landed a change to the constructor of
FieldItemNormalizerValueswhich jsonapi_extras might not be updated to handle yet.I would start debugging at
Drupal\jsonapi_extras\Normalizer\FieldItemNormalizer:143Comment #3
grimreaperHi @gabesullice,
Sorry for my issue, I was in a hurry.
Nice catch! With jsonapi_extras uninstalled it works.
I will see from which commit it fails.
Comment #4
grimreaperChanging project.
The problem occurs between version 8.x-1.0-rc1 and 8.x-1.0-rc2.
I can' t go back more because of the changes in JSONAPI.
In jsonapi_extras/src/Normalizer/FieldItemNormalizer.php, line 76:
PHPStorm highlights FieldItemNormalizerValue:
"Required parameter $values_cacheability missing"
If that can help.
Sorry I don't have more time to investigate.
Comment #5
e0ipsoComment #6
e0ipsoSome of the changes in JSON API broke JSON API Extras again. After some investigation I was able to find a fix for it.
Comment #8
e0ipsoThis was fixed in 8.x-2.x.
Comment #10
e0ipsoComment #11
grimreaperHi,
Thanks @e0ipso for the fix.
So now the branch to use is the 8.x-2.x for jsonapi extras? and 8.x-1.x is deprecated?
Comment #12
gabesulliceHopefully these changes will end soon! I think it's worth paying the price now rather than later though :)