cms icon indicating copy to clipboard operation
cms copied to clipboard

Search results tag using comb driver returning 500 on specific search term

Open robdekort opened this issue 2 months ago • 10 comments

Bug description

A client reported a specific search term that returns a 500 error on their production site.

The search term backchannel_logout_session_required returns a mb_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) error when using the {{ search:results }} tag.

How to reproduce

Search an index using: {{ search:results index="search" supplement_data="true" paginate="true" limit="12" as="results" }} with the term backchannel_logout_session_required.

The index looks like this:

'search' => [
    'driver' => 'local',
    'searchables' => ['collection:pages', 'collection:blog', 'collection:guides', 'collection:products'],
    'fields' => ['title', 'long_title', 'page_builder', 'content', 'teaser', 'article'],
    'min_characters' => 3,
    'property_weights' => ['title' => 100, 'long_title' => 90, 'url' => 80],
    'use_stemming' => true,
    'use_alternates' => true,
    'snippet_length' => 30,
    'filter' => \App\SearchFilters\Exclude::class,
    'stop_words' => $stop_words
],

The exclude class looks like this:

namespace App\SearchFilters;

class Exclude
{
    public function handle($item)
    {
        return $item->status() === 'published' && !$item->exclude_from_search;
    }
}

Logs

[2025-11-05 13:55:05] local.ERROR: mb_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) {"view":{"view":"","data":[]},"userId":"9ac4b1f3-7a4a-41d9-a8cf-acc92fd87bf5","exception":"[object] (Spatie\\LaravelIgnition\\Exceptions\\ViewException(code: 0): mb_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) at /Users/robdekort/Sites/connect2id/resources/views/search.antlers.html:71)
[stacktrace]
#0 /Users/robdekort/Sites/connect2id/resources/views/search.antlers.html(71): ()
#1 /Users/robdekort/Sites/connect2id/vendor/statamic/stringy/src/Stringy.php(1129): mb_strpos('\" : true, ... }...', ' ', -2406, 'UTF-8')
#2 [internal function]: Stringy\\Stringy->safeTruncate(-2405)
#3 /Users/robdekort/Sites/connect2id/vendor/statamic/stringy/src/StaticStringy.php(149): call_user_func_array(Array, Array)
#4 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Support/Str.php(334): Stringy\\StaticStringy::__callStatic('safeTruncate', Array)
#5 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(1082): Statamic\\Support\\Str::__callStatic('safeTruncate', Array)
#6 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(609): Statamic\\Search\\Comb\\Comb->extractSnippets('We know, it was...', Array)
#7 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(263): Statamic\\Search\\Comb\\Comb->searchOverData(Array, 'backchannel_log...')
#8 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Index.php(31): Statamic\\Search\\Comb\\Comb->lookUp('backchannel_log...')
#9 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Query.php(11): Statamic\\Search\\Comb\\Index->lookup('backchannel_log...')
#10 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/QueryBuilder.php(53): Statamic\\Search\\Comb\\Query->getSearchResults('backchannel_log...')
#11 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/IteratorBuilder.php(42): Statamic\\Search\\QueryBuilder->getBaseItems()
#12 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/IteratorBuilder.php(18): Statamic\\Query\\IteratorBuilder->getFilteredItems()
#13 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/Builder.php(664): Statamic\\Query\\IteratorBuilder->getCountForPagination()
#14 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Tags/Concerns/GetsQueryResults.php(65): Statamic\\Query\\Builder->paginate(12, Array, 'page')
#15 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Tags/Concerns/GetsQueryResults.php(17): Statamic\\Search\\Tags->paginatedResults(Object(Statamic\\Search\\Comb\\Query), 12)
#16 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Tags.php(41): Statamic\\Search\\Tags->getQueryResults(Object(Statamic\\Search\\Comb\\Query))
#17 [internal function]: Statamic\\Search\\Tags->results()
#18 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1610): call_user_func(Array)
#19 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce(Array)
#20 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(386): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render(Array)
#21 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(778): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText('{{#\\n    @name S...', Array)
#22 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView('/Users/robdekor...', '{{#\\n    @name S...', Array)
#23 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(209): Statamic\\View\\Antlers\\Engine->get('/Users/robdekor...', Array)
#24 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(192): Illuminate\\View\\View->getContents()
#25 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(161): Illuminate\\View\\View->renderContents()
#26 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/View.php(104): Illuminate\\View\\View->render()
#27 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Controllers/FrontendController.php(77): Statamic\\View\\View->render()
#28 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Statamic\\Http\\Controllers\\FrontendController->route(Object(Illuminate\\Http\\Request), 'search', Array)
#29 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\\Routing\\Controller->callAction('route', Array)
#30 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Route.php(266): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Statamic\\Http\\Controllers\\FrontendController), 'route')
#31 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\Route->runController()
#32 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#33 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():807}(Object(Illuminate\\Http\\Request))
#34 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(78): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():168}(Object(Illuminate\\Http\\Request))
#35 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(59): Statamic\\StaticCaching\\Middleware\\Cache->handleRequest(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(131): Statamic\\StaticCaching\\Middleware\\Cache->{closure:Statamic\\StaticCaching\\Middleware\\Cache::handle():59}()
#37 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(59): Illuminate\\Cache\\Lock->block(30, Object(Closure))
#38 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\StaticCaching\\Middleware\\Cache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#40 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\AuthGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/AddViewPaths.php(19): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#42 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\AddViewPaths->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/Localize.php(37): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#44 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\Localize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/HandleToken.php(13): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#46 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\HandleToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/StacheLock.php(29): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#48 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\StacheLock->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 /Users/robdekort/Sites/connect2id/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#50 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#51 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(51): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#52 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(88): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#54 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#55 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#56 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#57 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#58 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#59 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#60 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#61 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#63 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#64 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#65 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#66 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#67 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#68 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#69 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#70 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():198}(Object(Illuminate\\Http\\Request))
#71 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():168}(Object(Illuminate\\Http\\Request))
#72 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\StopImpersonating->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#73 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#74 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\DisableFloc->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#75 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(15): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#76 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\CheckMultisite->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#77 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#78 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#79 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#80 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\PoweredByHeader->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#81 /Users/robdekort/Sites/connect2id/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#82 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#83 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#84 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#85 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#86 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#87 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#88 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#89 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#90 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#91 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#92 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#93 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#94 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#95 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#96 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#97 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#98 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#99 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#100 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#101 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#102 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#103 /Users/robdekort/Sites/connect2id/public/index.php(17): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#104 /Applications/Herd.app/Contents/Resources/valet/server.php(167): require('/Users/robdekor...')
#105 {main}

[previous exception] [object] (ValueError(code: 0): mb_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) at /Users/robdekort/Sites/connect2id/vendor/statamic/stringy/src/Stringy.php:1129)
[stacktrace]
#0 /Users/robdekort/Sites/connect2id/vendor/statamic/stringy/src/Stringy.php(1129): mb_strpos('\" : true, ... }...', ' ', -2406, 'UTF-8')
#1 [internal function]: Stringy\\Stringy->safeTruncate(-2405)
#2 /Users/robdekort/Sites/connect2id/vendor/statamic/stringy/src/StaticStringy.php(149): call_user_func_array(Array, Array)
#3 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Support/Str.php(334): Stringy\\StaticStringy::__callStatic('safeTruncate', Array)
#4 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(1082): Statamic\\Support\\Str::__callStatic('safeTruncate', Array)
#5 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(609): Statamic\\Search\\Comb\\Comb->extractSnippets('We know, it was...', Array)
#6 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Comb.php(263): Statamic\\Search\\Comb\\Comb->searchOverData(Array, 'backchannel_log...')
#7 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Index.php(31): Statamic\\Search\\Comb\\Comb->lookUp('backchannel_log...')
#8 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Comb/Query.php(11): Statamic\\Search\\Comb\\Index->lookup('backchannel_log...')
#9 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/QueryBuilder.php(53): Statamic\\Search\\Comb\\Query->getSearchResults('backchannel_log...')
#10 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/IteratorBuilder.php(42): Statamic\\Search\\QueryBuilder->getBaseItems()
#11 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/IteratorBuilder.php(18): Statamic\\Query\\IteratorBuilder->getFilteredItems()
#12 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Query/Builder.php(664): Statamic\\Query\\IteratorBuilder->getCountForPagination()
#13 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Tags/Concerns/GetsQueryResults.php(65): Statamic\\Query\\Builder->paginate(12, Array, 'page')
#14 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Tags/Concerns/GetsQueryResults.php(17): Statamic\\Search\\Tags->paginatedResults(Object(Statamic\\Search\\Comb\\Query), 12)
#15 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Search/Tags.php(41): Statamic\\Search\\Tags->getQueryResults(Object(Statamic\\Search\\Comb\\Query))
#16 [internal function]: Statamic\\Search\\Tags->results()
#17 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1610): call_user_func(Array)
#18 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce(Array)
#19 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(386): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render(Array)
#20 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(778): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText('{{#\\n    @name S...', Array)
#21 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView('/Users/robdekor...', '{{#\\n    @name S...', Array)
#22 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(209): Statamic\\View\\Antlers\\Engine->get('/Users/robdekor...', Array)
#23 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(192): Illuminate\\View\\View->getContents()
#24 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/View.php(161): Illuminate\\View\\View->renderContents()
#25 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/View/View.php(104): Illuminate\\View\\View->render()
#26 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Controllers/FrontendController.php(77): Statamic\\View\\View->render()
#27 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Statamic\\Http\\Controllers\\FrontendController->route(Object(Illuminate\\Http\\Request), 'search', Array)
#28 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\\Routing\\Controller->callAction('route', Array)
#29 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Route.php(266): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Statamic\\Http\\Controllers\\FrontendController), 'route')
#30 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\Route->runController()
#31 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#32 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():807}(Object(Illuminate\\Http\\Request))
#33 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(78): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():168}(Object(Illuminate\\Http\\Request))
#34 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(59): Statamic\\StaticCaching\\Middleware\\Cache->handleRequest(Object(Illuminate\\Http\\Request), Object(Closure))
#35 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(131): Statamic\\StaticCaching\\Middleware\\Cache->{closure:Statamic\\StaticCaching\\Middleware\\Cache::handle():59}()
#36 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(59): Illuminate\\Cache\\Lock->block(30, Object(Closure))
#37 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\StaticCaching\\Middleware\\Cache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#39 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\AuthGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/AddViewPaths.php(19): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#41 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\AddViewPaths->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#42 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/Localize.php(37): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#43 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\Localize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/HandleToken.php(13): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#45 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\HandleToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/StacheLock.php(29): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#47 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\StacheLock->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 /Users/robdekort/Sites/connect2id/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#49 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(51): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#51 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(88): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#53 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#55 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#57 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#58 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#60 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#61 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#62 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#63 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#64 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#65 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#66 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#67 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#68 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#69 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():198}(Object(Illuminate\\Http\\Request))
#70 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():168}(Object(Illuminate\\Http\\Request))
#71 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\StopImpersonating->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#72 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#73 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\DisableFloc->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#74 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(15): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#75 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\CheckMultisite->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#76 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#77 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#78 /Users/robdekort/Sites/connect2id/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#79 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Statamic\\Http\\Middleware\\PoweredByHeader->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#80 /Users/robdekort/Sites/connect2id/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#81 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#82 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#83 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#84 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#85 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#86 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#87 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#88 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#89 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#90 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#91 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#92 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#93 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#94 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#95 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#96 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#97 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#98 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():184}:185}(Object(Illuminate\\Http\\Request))
#99 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#100 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#101 /Users/robdekort/Sites/connect2id/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1220): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#102 /Users/robdekort/Sites/connect2id/public/index.php(17): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#103 /Applications/Herd.app/Contents/Resources/valet/server.php(167): require('/Users/robdekor...')
#104 {main}
"}

Environment

Environment
Application Name: Connect2id
Laravel Version: 11.46.1
PHP Version: 8.4.14
Composer Version: 2.8.11
Environment: local
Debug Mode: ENABLED
URL: connect2id.test
Maintenance Mode: OFF
Timezone: Europe/Sofia
Locale: en

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

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

Locales
Installed: en
LaravelLang\Actions\Plugin: 1.10.2
LaravelLang\Attributes\Plugin: 2.13.6
LaravelLang\HttpStatuses\Plugin: 3.10.5
LaravelLang\Lang\Plugin: 15.26.2
LaravelLang\MoonShine\Plugin: INCORRECT
LaravelLang\StarterKits\Plugin: 1.5.1
Locales Version: 2.10.0
Protected: en
Publisher Version: 16.7.0

Statamic
Addons: 5
Sites: 1
Stache Watcher: Enabled (auto)
Static Caching: Disabled
Version: 5.68.0 PRO

Statamic Addons
rias/statamic-color-swatches: 2.3.1
studio1902/statamic-peak-browser-appearance: 3.6.1
studio1902/statamic-peak-commands: 9.9.1
studio1902/statamic-peak-seo: 8.26.2
studio1902/statamic-peak-tools: 7.3.3

Installation

Starter Kit using via CLI

Additional details

No response

robdekort avatar Nov 05 '25 11:11 robdekort

I think this might have more to do with the content than the search query.

Looking at the stack trace it's failing on a piece of content that contains: We know, it was

Can you do a manual search for that and provide the content?

jasonvarga avatar Nov 05 '25 19:11 jasonvarga

Yes! Here it is:

"entry::ab2e8c97-8327-42b0-b1ce-a0cd2e6cc6a7": {
    "title": "OpenID Connect front and back-channel logout support in Connect2id server 7.3",
    "long_title": null,
    "page_builder": null,
    "content": "We know, it was a long wait, but now we finally have it, support for OpenID\nConnect front and back-channel logout in the [Connect2id server](\/products\/server).\nThe two specs complement core OpenID Connect with mechanisms for notifying\nconcerned relying parties that an end-user has been logged out of the identity\nprovider:\n\n* The [front-channel logout](http:\/\/openid.net\/specs\/openid-connect-frontchannel-1_0.html)\n  mechanism notifies the relying party by calling a URL via a hidden browser\n  iframe.\n\n* The [back-channel logout](http:\/\/openid.net\/specs\/openid-connect-backchannel-1_0-ID1.html)\n  mechanism submits the notification as a special logout token (JWT) that is\n  posted directly to the relying party.\n\nThe relying party must be [registered](\/products\/server\/docs\/api\/client-registration)\nto receive front or back-channel notifications. Those will be delivered only\nfor sessions into which the relying party previously logged in a user (received\nan ID token).\n\nEach mechanism has its pros and cons. Back-channel logout for example can also\nnotify the relying party of expired sessions and doesn't rely on the browser\nbeing open, however it may fail to notify client applications behind firewalls.\nAt the [OAuth security workshop in Trento](\/blog\/oauth-workshop-trento-2018)\nMike Jones and Brock Allen made a comprehensive presentation on the topic of\nlogout, check their slides\n[here](http:\/\/self-issued.info\/presentations\/What_Does_Logout_Mean_Presentation.pdf).\n\n\n## Front-channel logout use\n\nThe relying party must be registered with an HTTPS URL for receiving the\nnotifications. A flag can also be set to receive a session ID (\"sid\" claim)\nin issued ID tokens and with the logout notification so it can know exactly\nwhich end-user identity was logged out (in case sessions with multiple user\naccounts is possible) and also for additional confirmation.\n\nExample client metadata:\n\n```json\n{\n  \"frontchannel_logout_uri\"              : \"https:\/\/example.com\/logout\",\n  \"frontchannel_logout_session_required\" : true,\n  ...\n}\n```\n\nThe IdP must then log out all users via the [logout session web\nAPI](\/products\/server\/docs\/integration\/logout-session) of the Connect2id server\nwhich will return a list of URLs for any hidden browser iframes that are to be\ncreated.\n\n\n## Back-channel logout use\n\nFor back-channel logout the relying party needs a similar client registration:\n\n```json\n{\n  \"backchannel_logout_uri\"              : \"https:\/\/example.com\/logout\",\n  \"backchannel_logout_session_required\" : true,\n  ...\n}\n```\n\nThe Connect2id server will submit a logout token ([security event\nJWT](https:\/\/tools.ietf.org\/html\/rfc8417)) for each notification. The default\nHTTP connect and read timeouts are 250ms, and can be\n[adjusted](\/products\/server\/docs\/config\/core#backchannel-logout) if needed.\n\n**Important note**: Connect2id server deployments with Redis as the primary\nin-memory store will not deliver back-channel logout notifications for expired\nsessions. This issue will be addressed in a future release.\n\n\n## Support for DynamoDB encryption at rest and table name prefix\n\nConnect2id server deployments in the AWS cloud with DynamoDB persistence can\nnow create  tables with data encryption at rest (server-side encryption). The\ntables can also be given a common prefix to differentiate them from other\ntables in the same AWS region. Check out the updated [DynamoDB configuration\nreference](\/products\/server\/docs\/config\/infinispan#dynamodb) for how to do that.\n\n\n## Other changes and updates\n\nThe [authorisation session](\/products\/server\/docs\/integration\/authz-session)\nand [subject session store](\/products\/server\/docs\/integration\/session-store)\nweb APIs also received small updates, these are described in the release notes\nbelow.\n\n\n## Migrating to 7.3\n\nIf you're upgrading from 6.x or earlier Connect2id server release first read\nthe [7.0 release notes](\/blog\/connect2id-server-7).\n\nIn order to facilitate relying party tracking in the subject sessions and\ninclude the new client registration parameters for front and back-channel\nlogout the database schemas were updated where required.\n\n\n### SQL database\n\nIf you have configured your Connect2id server to persist its data to a MySQL,\nPostgreSQL or H2 database the 7.3 server will automatically add the required\nnew table columns on startup (in tables *subject_sessions* and *clients*).\n\n\n### LDAP directory\n\nIf the Connect2id server is configured to persist its data to an LDAPv3\ncompatible directory, such as OpenLDAP or OpenDJ, the directly schema will\nneed to be updated manually.\n\nHere are updated LDAP schemas for the subject sessions and client\nregistrations:\n\nFor OpenLDAP and compatible directory servers:\n\n<a href=\"https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/oidc-session-schema-openldap.ldif\">oidc-session-schema-openldap.ldif<\/a>\n\n<a href=\"https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/oidc-client-schema-openldap.ldif\">oidc-client-schema-openldap.ldif<\/a>\n\nFor OpenDJ and compatible directory servers:\n\n<a href=\"https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/oidc-client-schema-opendj.ldif\">oidc-client-schema-opendj.ldif<\/a>\n\n<a href=\"https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/oidc-session-schema-opendj.ldif\">oidc-session-schema-opendj.ldif<\/a>\n\n\nIf you need assistance with migration contact Connect2id support.\n\n\n\n## Download\n\nTo download a ZIP package of Connect2id server 7.3:\n\n<https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/Connect2id-server.zip>\n\n<small>SHA-256: f4dd1377ec0b55a3381a4bbdc296f8624165c39ce1648284a82003c5cc9b3037<\/small>\n\nAs WAR package only:\n\n<https:\/\/c2id-downloads.s3.eu-central-1.amazonaws.com\/server\/7.3\/c2id.war>\n\n<small>SHA-256: e3634a7f695f4324ae02c492f032b5c37d5968c3d8673c628183c24210df470f<\/small>\n\n\n## Questions?\n\nGet in touch with [Connect2id support](\/contact).\n\n\n***\n\n## Release notes {#release-notes-7-3}\n\n## 7.3 (2018-07-11)\n\n### Summary\n\n* Implements OpenID Connect front-channel logout 1.0 (draft 02) for notifying\n  subscribed OpenID relying parties when a subject session into which the\n  OpenID relying party was logged in gets closed. The notifications are\n  delivered via the browser, by calling a registered OpenID relying party URL\n  (typically by the OpenID provider creating a hidden iframe for the URL).\n  Front-channel logout is implemented by extending the Connect2id server logout\n  session web API.\n\n* Implements OpenID Connect back-channel logout 1.0 (draft 04) for delivering\n  logout tokens (JWT) to subscribed OpenID relying parties when a subject\n  session into which the OpenID relying party was logged in gets closed or\n  expires. Note: Connect2id server deployments with Redis as the primary\n  in-memory store will not deliver back-channel logout notifications for\n  expired sessions. This issue will be addressed in a future release.\n\n* Extends the logout session web API to support OpenID provider initiated\n  logout and to return front-channel logout URLs if OpenID relying parties that\n  were logged in are subscribed to receive such notification.\n\n* Extends the subject (end-user) session store API to track OpenID relying\n  parties logged in during a session.\n\n* Extends the authorisation session (login page) web API to include the\n  optional email \"contacts\" in the OAuth 2.0 client information.\n\n* Connect2id server deployments with a DynamoDB backend database can enable\n  encryption at rest and set a common prefix when the DynamoDB tables are\n  created. Encryption at rest is enabled by setting the\n  \"dynamodb.encryptionAtRest\" system property. A common prefix for the table\n  names is set with the \"dynamodb.tablePrefix\" system property.\n\n* Updates the MySQL, PostgreSQL, H2 and LDAP schemas to enable storage of\n  front and back-channel logout related data. The Connect2id server will\n  automatically update the schema of existing SQL tables on startup by making a\n  series of ALTER TABLE queries. Connect2id server deployments with an LDAP\n  backend will require a manual schema update. Connect2id server deployments\n  with a DynamoDB backend will not require any schema updates (the item values\n  are schema-less).\n\n\n### Configuration\n\n* \/WEB-INF\/oidcProvider.properties\n\n    * op.logout.backChannel.httpConnectTimeout -- New configuration property,\n      specifies the HTTP connect timeout (in milliseconds) for posting a logout\n      token. Zero implies no timeout. Must not be negative. Defaults to 250 ms.\n\n    * op.logout.backChannel.httpReadTimeout -- New configuration property,\n      specifies the HTTP read timeout (in milliseconds) for posting a logout\n      token. Zero implies no timeout. Must not be negative. Defaults to 250 ms.\n\n* \/WEB-INF\/infinispan-*-dynamodb.xml\n\n    * Updates the DynamoDB store XML schema to v1.1.\n\n    * Adds support for an \"encryption-at-rest\" attribute (defaults to \"false\"),\n      settable via the \"dynamodb.encryptionAtRest\" system property.\n\n    * Exposes the \"table-prefix\"  attribute (defaults to none), settable via\n      the \"dynamodb.tablePrefix\" system property.\n\n\n### Web API\n\n* \/authz-sessions\/rest\/v3\/\n\n    * Adds the \"contacts\" OAuth client registration metadata parameter to the\n      OAuth client details included in the authentication and consent prompt\n      JSON objects. If set it will be represented as a JSON array of strings\n      containing one or more e-email addresses. The \"contacts\" parameter is\n      intended to designate people responsible for the OAuth client \/ OpenID\n      relying party.\n\n* \/logout-sessions\/rest\/v1\/\n\n    * Adds an optional \"initiator\" parameter to the logout request JSON object\n      to indicate the initiator: \"RP\" for a logout request initiated by an\n      OpenID relying party (see OpenID Connect Session Management 1.0,\n      RP-Initiated Logout), \"OP\" for a logout request initiated by the OpenID\n      provider. If the \"initiator\" parameter is not set the default \"RP\" is\n      assumed.\n\n    * If the logout request is initiated by the OpenID provider (\"OP\") the API\n      will immediately proceed to return a final logout response or error (i.e.\n      the usual logout prompt for an OpenID relying party initiated logout will\n      be skipped).\n\n    * Extends the logout end JSON object to include \"frontchannel_logout_uris\"\n      (JSON array of URIs) if there are hidden iframes to be created for OpenID\n      Connect front-channel logout notification.\n\n* \/session-store\/rest\/v2\/\n\n    * Adds an \"rps\" (relying parties) parameter to the subject session object,\n      of type JSON string array. Lists the OpenID relying parties logged in\n      during the subject session. OAuth 2.0 clients which are issued with an\n      access token but no ID token during the session are not accounted. OpenID\n      relying parties which subsequently submit a logout notification with an\n      ID token hint that identifies them are automatically removed from the\n      list (see OpenID Connect Session Management 1.0, RP-initiated logout).\n\n\n### Resolved issues\n\n* Changes the handling of subject session updates in the authorisation session\n  web API (\/authz-sessions\/rest\/v3\/) when op.authz.alwaysPromptForAuth is\n  enabled or when authentication (ACR) is stepped up so that the optional\n  \"claims\" and \"data\" subject session parameters also get set \/ replaced.\n  Previously only the subject authentication details (\"auth_time\", \"acr\" and\n  \"amr\") could be updated with the PUT request (issue server\/373).\n\n\n### Dependency changes\n\n* Upgrades to com.nimbusds:oauth2-oidc-sdk:5.63\n\n* Upgrades to com.nimbusds:oauth2-authz-store:8.1.5\n\n* Upgrades to com.nimbusds:oidc-session-store:9.4.3\n\n* Upgrades to com.nimbusds:infinispan-cachestore-sql:3.0.3\n\n* Upgrades to com.nimbusds:infinispan-cachestore-dynamodb:2.1.1\n\n* Upgrades to org.bouncycastle:bcprov-jdk15on:1.60\n\n* Upgrades to org.bouncycastle:bcpkix-jdk15on:1.60\n\n* Upgrades to org.jooq:jooq:3.11.2\n\n* Upgrades to com.amazonaws:aws-java-sdk-bundle:1.11.362\n\n* Upgrades to commons-codec:commons-codec:1.11\n\n* Adds dependency to org.asynchttpclient:async-http-client:2.4.9\n\n* Upgrades to com.h2database:h2:1.4.197\n\n* Upgrades Log4j2 to 2.11.0\n",
    "teaser": null,
    "article": null
},

robdekort avatar Nov 06 '25 07:11 robdekort

Are you able to provide the md file for that entry?

jasonvarga avatar Nov 06 '25 19:11 jasonvarga

Yep, I'll look it up and DM it. Thanks for looking into this. Appreciate it!

robdekort avatar Nov 06 '25 19:11 robdekort

In the short term, if you set snippet_length to 35, the error goes away.

jasonvarga avatar Nov 06 '25 20:11 jasonvarga

It does! Thanks!

robdekort avatar Nov 06 '25 20:11 robdekort

The issue is a bit over my head right now, but it's happening in https://github.com/statamic/cms/blob/c66f9f739a7a89f505ad1bbf2d557b9e73776a4c/src/Search/Comb/Comb.php#L1082

The safeTruncate $length argument ends up being like -2405 which is bizarre.

jasonvarga avatar Nov 06 '25 20:11 jasonvarga

All good here for my client with this solution. I'm sure you'll figure it out someday.

robdekort avatar Nov 06 '25 20:11 robdekort

Yeah I'll file this issue in the special filing cabinet!

https://www.youtube.com/watch?v=GoDcyy98V6Q

jasonvarga avatar Nov 06 '25 21:11 jasonvarga

Great call. Trash it!

robdekort avatar Nov 06 '25 21:11 robdekort