cms icon indicating copy to clipboard operation
cms copied to clipboard

Call to a member function lang() on null when creating a new entry

Open jerome2710 opened this issue 5 months ago • 7 comments

Bug description

We are creating a multi-site headless setup with Statamic and a separate Next.js frontend. When creating a new entry within a collection, the following error occurs;

Error /cp/collections/{collection}/entries/{site} Call to a member function lang() on null

Error: Call to a member function lang() on null
#159 /vendor/statamic/cms/src/Routing/Routable.php(31): Statamic\Entries\Entry::{closure:Statamic\Routing\Routable::slug():20}
#158 /vendor/statamic/cms/src/Support/FluentGetterSetter.php(109): Statamic\Support\FluentGetterSetter::runGetterLogic
#157 /vendor/statamic/cms/src/Support/FluentGetterSetter.php(91): Statamic\Support\FluentGetterSetter::args
#156 /vendor/statamic/cms/src/Routing/Routable.php(34): Statamic\Entries\Entry::slug
#155 /vendor/statamic/cms/src/Entries/Entry.php(209): Statamic\Entries\Entry::getCurrentDirtyStateAttributes
#154 /vendor/statamic/cms/src/Data/HasDirtyState.php(50): Statamic\Entries\Entry::syncOriginal
#153 /vendor/statamic/eloquent-driver/src/Entries/Entry.php(47): Statamic\Eloquent\Entries\Entry::fromModel
#152 /vendor/statamic/eloquent-driver/src/Entries/EntryQueryBuilder.php(38): Statamic\Eloquent\Entries\EntryQueryBuilder::{closure:Statamic\Eloquent\Entries\EntryQueryBuilder::transform():37}
#151 [internal](0): array_map
#150 /vendor/laravel/framework/src/Illuminate/Collections/Arr.php(786): Illuminate\Support\Arr::map
#149 /vendor/laravel/framework/src/Illuminate/Collections/Collection.php(814): Illuminate\Support\Collection::map
#148 /vendor/statamic/eloquent-driver/src/Entries/EntryQueryBuilder.php(37): Statamic\Eloquent\Entries\EntryQueryBuilder::transform
#147 /vendor/statamic/cms/src/Query/EloquentQueryBuilder.php(71): Statamic\Query\EloquentQueryBuilder::get
#146 /vendor/statamic/eloquent-driver/src/Entries/EntryQueryBuilder.php(88): Statamic\Eloquent\Entries\EntryQueryBuilder::get
#145 /vendor/statamic/eloquent-driver/src/Entries/EntryRepository.php(104): Statamic\Eloquent\Entries\EntryRepository::updateUris
#144 /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(363): Illuminate\Support\Facades\Facade::__callStatic
#143 /vendor/statamic/cms/src/Entries/Collection.php(516): Statamic\Entries\Collection::updateEntryUris
#142 /vendor/statamic/cms/src/Entries/Entry.php(470): Statamic\Entries\Entry::updateChildPageUris
#141 /vendor/statamic/cms/src/Entries/Entry.php(421): Statamic\Entries\Entry::save
#140 /vendor/statamic/eloquent-driver/src/Jobs/UpdateCollectionEntryOrder.php(25): Statamic\Eloquent\Jobs\UpdateCollectionEntryOrder::handle
#139 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Container\BoundMethod::{closure:Illuminate\Container\BoundMethod::call():35}
#138 /vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\Container\Util::unwrapIfClosure
#137 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\Container\BoundMethod::callBoundMethod
#136 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::call
#135 /vendor/laravel/framework/src/Illuminate/Container/Container.php(836): Illuminate\Container\Container::call
#134 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(129): Illuminate\Bus\Dispatcher::{closure:Illuminate\Bus\Dispatcher::dispatchNow():126}
#133 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}
#132 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline::then
#131 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(133): Illuminate\Bus\Dispatcher::dispatchNow
#130 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(134): Illuminate\Queue\CallQueuedHandler::{closure:Illuminate\Queue\CallQueuedHandler::dispatchThroughMiddleware():127}
#129 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}
#128 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline::then
#127 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(127): Illuminate\Queue\CallQueuedHandler::dispatchThroughMiddleware
#126 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(68): Illuminate\Queue\CallQueuedHandler::call
#125 /vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\Queue\Jobs\Job::fire
#124 /vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(130): Illuminate\Queue\SyncQueue::executeJob
#123 /vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(110): Illuminate\Queue\SyncQueue::push
#122 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(246): Illuminate\Bus\Dispatcher::pushCommandToQueue
#121 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(230): Illuminate\Bus\Dispatcher::dispatchToQueue
#120 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(80): Illuminate\Bus\Dispatcher::dispatch
#119 /vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php(251): Illuminate\Foundation\Bus\PendingDispatch::__destruct
#118 /vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(271): Illuminate\Support\Collection::each
#117 /vendor/statamic/eloquent-driver/src/Entries/EntryRepository.php(113): Statamic\Eloquent\Entries\EntryRepository::updateOrders
#116 /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(363): Illuminate\Support\Facades\Facade::__callStatic
#115 /vendor/statamic/cms/src/Entries/Collection.php(523): Statamic\Entries\Collection::updateEntryOrder
#114 /vendor/statamic/cms/src/Entries/UpdateStructuredEntryOrderAndParent.php(21): Statamic\Entries\UpdateStructuredEntryOrderAndParent::handle
#113 /vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(508): Illuminate\Events\Dispatcher::{closure:Illuminate\Events\Dispatcher::createClassListener():501}
#112 /vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(315): Illuminate\Events\Dispatcher::invokeListeners
#111 /vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(295): Illuminate\Events\Dispatcher::dispatch
#110 /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(505): event
#109 /vendor/statamic/cms/src/Events/Event.php(21): Statamic\Events\Event::dispatch
#108 /vendor/statamic/cms/src/Structures/CollectionTree.php(46): Statamic\Structures\CollectionTree::dispatchSavedEvent
#107 /vendor/statamic/cms/src/Structures/Tree.php(170): Statamic\Structures\Tree::save
#106 /vendor/statamic/cms/src/Http/Controllers/CP/Collections/EntriesController.php(419): Statamic\Http\Controllers\CP\Collections\EntriesController::{closure:Statamic\Http\Controllers\CP\Collections\EntriesController::store():414}
#105 /vendor/statamic/cms/src/Entries/Entry.php(425): Statamic\Entries\Entry::save
#104 /vendor/statamic/cms/src/Revisions/Revisable.php(152): Statamic\Entries\Entry::store
#103 /vendor/statamic/cms/src/Http/Controllers/CP/Collections/EntriesController.php(426): Statamic\Http\Controllers\CP\Collections\EntriesController::store
#102 /vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Illuminate\Routing\Controller::callAction
#101 /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\ControllerDispatcher::dispatch
#100 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(21): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing::{closure:Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing::dispatch():20}
#99 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingRoutingDispatcher.php(18): Sentry\Laravel\Tracing\Routing\TracingRoutingDispatcher::wrapRouteDispatch
#98 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(20): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing::dispatch
#97 /vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\Routing\Route::runController
#96 /vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\Routing\Route::run
#95 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\Routing\Router::{closure:Illuminate\Routing\Router::runRouteWithinStack():821}
#94 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}
#93 /vendor/mitydigital/statamic-two-factor/src/Http/Middleware/EnforceTwoFactor.php(64): MityDigital\StatamicTwoFactor\Http\Middleware\EnforceTwoFactor::handle
#92 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#91 /vendor/statamic/cms/src/Http/Middleware/DeleteTemporaryFileUploads.php(18): Statamic\Http\Middleware\DeleteTemporaryFileUploads::handle
#90 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#89 /vendor/statamic/cms/src/Http/Middleware/CP/AddVaryHeaderToResponse.php(11): Statamic\Http\Middleware\CP\AddVaryHeaderToResponse::handle
#88 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#87 /vendor/statamic/cms/src/Http/Middleware/CP/CountUsers.php(18): Statamic\Http\Middleware\CP\CountUsers::handle
#86 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#85 /vendor/statamic/cms/src/Http/Middleware/CP/BootUtilities.php(14): Statamic\Http\Middleware\CP\BootUtilities::handle
#84 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#83 /vendor/statamic/cms/src/Http/Middleware/CP/BootPreferences.php(14): Statamic\Http\Middleware\CP\BootPreferences::handle
#82 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#81 /vendor/statamic/cms/src/Http/Middleware/CP/BootPermissions.php(14): Statamic\Http\Middleware\CP\BootPermissions::handle
#80 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#79 /vendor/statamic/cms/src/Http/Middleware/CP/SelectedSite.php(17): Statamic\Http\Middleware\CP\SelectedSite::handle
#78 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#77 /vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(19): Statamic\Http\Middleware\CP\Localize::handle
#76 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#75 /vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Statamic\Http\Middleware\CP\Authorize::handle
#74 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#73 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Foundation\Http\Middleware\TransformsRequest::handle
#72 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#71 /vendor/statamic/cms/src/Http/Middleware/CP/AddToasts.php(22): Statamic\Http\Middleware\CP\AddToasts::handle
#70 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#69 /vendor/statamic/cms/src/Http/Middleware/CP/AuthGuard.php(14): Statamic\Http\Middleware\CP\AuthGuard::handle
#68 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#67 /vendor/statamic/cms/src/Http/Middleware/CP/ContactOutpost.php(21): Statamic\Http\Middleware\CP\ContactOutpost::handle
#66 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#65 /vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Routing\Middleware\SubstituteBindings::handle
#64 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#63 /vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(66): Illuminate\Session\Middleware\AuthenticateSession::handle
#62 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#61 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(87): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::handle
#60 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#59 /vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(48): Illuminate\View\Middleware\ShareErrorsFromSession::handle
#58 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#57 /vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(120): Illuminate\Session\Middleware\StartSession::handleStatefulRequest
#56 /vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\Session\Middleware\StartSession::handle
#55 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#54 /vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(36): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::handle
#53 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#52 /vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(74): Illuminate\Cookie\Middleware\EncryptCookies::handle
#51 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#50 /vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Statamic\Http\Middleware\SwapExceptionHandler::handle
#49 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#48 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline::then
#47 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\Routing\Router::runRouteWithinStack
#46 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\Routing\Router::runRoute
#45 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\Routing\Router::dispatchToRoute
#44 /vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\Routing\Router::dispatch
#43 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Foundation\Http\Kernel::{closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}
#42 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Pipeline\Pipeline::{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}
#41 /vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Statamic\Http\Middleware\StopImpersonating::handle
#40 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#39 /vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Statamic\Http\Middleware\DisableFloc::handle
#38 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#37 /vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(15): Statamic\Http\Middleware\CheckMultisite::handle
#36 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#35 /vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(14): Statamic\Http\Middleware\CheckComposerJsonScripts::handle
#34 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#33 /vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Statamic\Http\Middleware\PoweredByHeader::handle
#32 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#31 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/FlushEventsMiddleware.php(13): Sentry\Laravel\Http\FlushEventsMiddleware::handle
#30 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#29 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Sentry\Laravel\Http\SetRequestIpMiddleware::handle
#28 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#27 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(31): Sentry\Laravel\Http\SetRequestMiddleware::handle
#26 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#25 /vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Barryvdh\Debugbar\Middleware\InjectDebugbar::handle
#24 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#23 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Foundation\Http\Middleware\TransformsRequest::handle
#22 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::handle
#21 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#20 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(47): Illuminate\Foundation\Http\Middleware\TrimStrings::handle
#19 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#18 /vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Http\Middleware\ValidatePostSize::handle
#17 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#16 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance::handle
#15 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#14 /vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(61): Illuminate\Http\Middleware\HandleCors::handle
#13 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#12 /vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\Http\Middleware\TrustProxies::handle
#11 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#10 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks::handle
#9 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#8 /vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\Http\Middleware\ValidatePathEncoding::handle
#7 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#6 /vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(79): Sentry\Laravel\Tracing\Middleware::handle
#5 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Pipeline\Pipeline::{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}
#4 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline::then
#3 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Foundation\Http\Kernel::sendRequestThroughRouter
#2 /vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel::handle
#1 /vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\Foundation\Application::handleRequest
#0 /public/index.php(17): null

Could it be related to our multi-site setup? We have multiple sites defined in ./resources/sites.yaml, yet the Statamic URL does not correspond to a website.

site-x:
  name: Site X
  locale: nl
  url: 'site-x.tld'

site-y:
  name: Site Y
  locale: nl
  url: 'site-y.tld'

site-z:
  name: Site Z
  locale: nl
  url: 'site-z.tld'

With Statamic running on something like cms.company.tld.

How to reproduce

  • Creating a multi-site setup
  • Try publishing a new entry

Logs


Environment

Environment
Application Name: Redacted
Laravel Version: 12.35.0
PHP Version: 8.4.6
Composer Version: 2.8.8
Environment: dev
Debug Mode: ENABLED
URL: Redacted
Maintenance Mode: OFF
Timezone: UTC
Locale: nl

Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: CACHED

Drivers
Broadcasting: log
Cache: file
Database: mariadb
Logs: stack / single
Mail: smtp
Queue: sync
Session: file

Storage
public/storage: NOT LINKED

Sentry
Enabled: MISSING DSN
Environment: dev
Laravel SDK Version: 4.15.1
PHP SDK Version: 4.14.2
Release: NOT SET
Sample Rate Errors: 100%
Sample Rate Performance Monitoring: NOT SET
Sample Rate Profiling: NOT SET
Send Default PII: DISABLED

Statamic
Addons: 4
Sites: 4 (Redacted)
Stache Watcher: Disabled (auto)
Static Caching: Disabled
Version: 5.67.0 PRO

Statamic Addons
mitydigital/statamic-two-factor: 2.7.2
statamic-rad-pack/runway: 8.5.2
statamic/eloquent-driver: 4.34.0
statamic/seo-pro: 6.11.0

Statamic Eloquent Driver
Asset Containers: file
Assets: eloquent
Blueprints: file
Collection Trees: eloquent
Collections: file
Entries: eloquent
Fieldsets: file
Form Submissions: eloquent
Forms: file
Global Sets: file
Global Variables: eloquent
Navigation Trees: eloquent
Navigations: file
Revisions: eloquent
Sites: file
Taxonomies: file
Terms: file
Tokens: eloquent

Installation

Fresh statamic/statamic site via CLI

Additional details

No response

jerome2710 avatar Oct 27 '25 14:10 jerome2710

I'm having issues reproducing this on my end.

Does it persist after clearing the cache (php artisan cache:clear)? Are you able to reproduce it on a fresh Statamic site?

site-x: site-y: site-z:

Are you actually using dashes (-) in your site handles, or is it just for example purposes? The reason I ask is because we generally discourage using dashes in handles.

duncanmcclean avatar Oct 31 '25 16:10 duncanmcclean

@duncanmcclean I just created a new Statamic project with statamic new my-statamic-playground. After the wizard, I created resources/sites.yaml with;

site_a:
  name: Site A
  locale: nl
  url: 'https://site-a.domain.tld'

site_b:
  name: Site B
  locale: nl
  url: 'https://site-b.domain.tld'

site_c:
  name: Site C
  locale: nl
  url: 'https://site-c.domain.tld'

site_d:
  name: Site D
  locale: nl
  url: 'https://site-d.domain.tld'

with Statamic running on https://domain.tld. I cleared the cache and logged in into the CP. The wizard already created the pages collection. When creating an entry on https://domain.tld/cp/collections/pages/entries/create/site_a, I immediately get the same Call to a member function lang() on null error. Navigating back to /cp/collections/pages, I do see the page created.

Are you actually using dashes (-) in your site handles, or is it just for example purposes? The reason I ask is because we generally discourage using dashes in handles.

We are actually using underscore like my test above. I manually redacted it when creating the GitHub issue.

I still believe the issue originates from the headless setup, having Statamic running on https://domain.tld, which is not defined as a site in resources/sites.yaml, getting confused when creating an entry from a domain which is not a Statamic frontend. But I am unable to prove and pinpoint this in the code.

jerome2710 avatar Nov 03 '25 13:11 jerome2710

@duncanmcclean with the team now in a test-phase of a sprint, we are getting more blocking issues. It's impossible to create any entries without having the error message pop-up. And it does not seem limited to entries, as I found the same error message when an asset action was being performed;

Image

Is there any way to get in contact and prioritize this issue? Our team is getting stuck and we cannot deliver the sprint to the client in this form.

jerome2710 avatar Nov 04 '25 09:11 jerome2710

I can't seem to reproduce the issue on a fresh site w/ a similar setup, so it must have something to do with your project.

Are you able to provide access to the repo? Either here on GitHub or via support.

duncanmcclean avatar Nov 04 '25 10:11 duncanmcclean

@duncanmcclean it seems that we need to have a Pro license to be able to create a support ticket. As we are still in development, we have not yet bought the license. I passed this along to project management.

For now, I pushed your requested setup to https://github.com/jerome2710/statamic-playground. This is the fresh project from yesterday, where I only added the sites after setting up the project through the Statamic CLI tool. Could you look into this?

jerome2710 avatar Nov 04 '25 10:11 jerome2710

@jerome2710 I just hit the same issue with a new site and then enabling multisite. Turns out I had a single page linked to the default site, but I had since changed the site handles of both sites. When editing the collection it was throwing this error as it couldn't determine the lang() of the site for each entry, as the site handle no longer existed ($this->site() was null). So perhaps check to see if any of your entries are linked to a non-existent site handle?

gavynd6 avatar Nov 10 '25 00:11 gavynd6

@jerome2710 I just hit the same issue with a new site and then enabling multisite. Turns out I had a single page linked to the default site, but I had since changed the site handles of both sites. When editing the collection it was throwing this error as it couldn't determine the lang() of the site for each entry, as the site handle no longer existed ($this->site() was null). So perhaps check to see if any of your entries are linked to a non-existent site handle?

@gavynd6 you are a legend for sharing this, thank you. It turns out we had an entry in the database table entries which was linked to a non-existing site. No idea why this would cause issues when creating a new entry. But deleting this existing entry now allows us to create new ones without an error massage.

Not sure why I was getting the same error in the fresh installation though.

@duncanmcclean We were busy discussing this issue through a support ticket. Not sure if we want to resolve this issue in GitHub or it should be looked into further to prevent this in the future?

jerome2710 avatar Nov 10 '25 09:11 jerome2710