Error
- mwversion: 1.45.0-wmf.22
- timestamp: 2025-10-15T15:45:14.897Z
- phpversion: 8.3.25
- reqId: 42232e72-6285-4ed5-8abf-618ffbdee10e
- Find reqId in Logstash
[{reqId}] {exception_url} Error: Invalid serialization data for DatePeriod objectImpact
It would appear that the serialization of DatePeriod is not compatible between 8.1 and 8.3. There also appear to be issues related to serialization of DateInterval (i.e., private properties differ, see details below), but it's unclear what role they play.
Specifically, although DatePeriod contains a DateInterval, it's unclear to me whether the failure to unserialize DatePeriod is due to issues involving the DateInterval vs. something else (e.g., a required property missing in the 8.1-serialized DatePeriod).
FWIW, from a quick spot check, unserializing on 8.3 an 8.1-serialized DateInterval appears to succeed, albeit with warnings like those below.
Edit: It's likely that this is DatePeriod::__unserialize failing on 8.3 due to the absence of the include_end_date in an 8.1-serialized object.
Notes
Within the same request, you can find a handful of deprecation errors like the following for various DateInterval properties, which are visible due to the deprecation of creating dynamic properties in the absence of AllowDynamicProperties in 8.2 (https://www.php.net/manual/en/migration82.deprecated.php) - i.e., these are possibly a symptom of the issue:
- mwversion: 1.45.0-wmf.22
- timestamp: 2025-10-15T15:45:14.896Z
- phpversion: 8.3.25
- reqId: 42232e72-6285-4ed5-8abf-618ffbdee10e
- Find reqId in Logstash
[{reqId}] {exception_url} PHP Deprecated: Creation of dynamic property DateInterval::$have_special_relative is deprecated| Frame | Location | Call |
|---|---|---|
| from | /srv/mediawiki/php-1.45.0-wmf.22/includes/objectcache/SqlBagOStuff.php(1704) | |
| #0 | [internal function] | MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int) |
| #1 | [internal function] | DateInterval->__unserialize(array) |
| #2 | /srv/mediawiki/php-1.45.0-wmf.22/includes/objectcache/SqlBagOStuff.php(1704) | unserialize(string) |
| #3 | /srv/mediawiki/php-1.45.0-wmf.22/includes/objectcache/SqlBagOStuff.php(182) | SqlBagOStuff->unserialize(string) |
| #4 | /srv/mediawiki/php-1.45.0-wmf.22/includes/libs/objectcache/MediumSpecificBagOStuff.php(108) | SqlBagOStuff->doGet(string, int) |
| #5 | /srv/mediawiki/php-1.45.0-wmf.22/extensions/GrowthExperiments/includes/MentorDashboard/PersonalizedPraise/PraiseworthyMenteeSuggester.php(163) | Wikimedia\ObjectCache\MediumSpecificBagOStuff->get(string) |
| #6 | /srv/mediawiki/php-1.45.0-wmf.22/extensions/GrowthExperiments/includes/MentorDashboard/PersonalizedPraise/PraiseworthyMenteeSuggester.php(172) | GrowthExperiments\MentorDashboard\PersonalizedPraise\PraiseworthyMenteeSuggester->getPraiseworthyMenteesForMentor(MediaWiki\User\UserIdentityValue) |
| #7 | /srv/mediawiki/php-1.45.0-wmf.22/extensions/GrowthExperiments/includes/MentorDashboard/PersonalizedPraise/PraiseworthyMenteeSuggester.php(189) | GrowthExperiments\MentorDashboard\PersonalizedPraise\PraiseworthyMenteeSuggester->isMenteeMarkedAsPraiseworthy(MediaWiki\User\User, MediaWiki\User\UserIdentityValue) |
| #8 | /srv/mediawiki/php-1.45.0-wmf.22/extensions/GrowthExperiments/includes/MentorDashboard/PersonalizedPraise/MediaWikiEventIngress/PageRevisionUpdatedIngress.php(66) | GrowthExperiments\MentorDashboard\PersonalizedPraise\PraiseworthyMenteeSuggester->markMenteeAsPraiseworthy(GrowthExperiments\UserImpact\UserImpact, MediaWiki\User\UserIdentityValue) |
| #9 | /srv/mediawiki/php-1.45.0-wmf.22/includes/DomainEvent/EventDispatchEngine.php(205) | GrowthExperiments\MentorDashboard\PersonalizedPraise\MediaWikiEventIngress\PageRevisionUpdatedIngress->handlePageRevisionUpdatedEvent(MediaWiki\Page\Event\PageLatestRevisionChangedEvent) |
| #10 | /srv/mediawiki/php-1.45.0-wmf.22/includes/DomainEvent/EventDispatchEngine.php(194) | MediaWiki\DomainEvent\EventDispatchEngine->invoke(array, MediaWiki\Page\Event\PageLatestRevisionChangedEvent) |
| #11 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/MWCallableUpdate.php(52) | MediaWiki\DomainEvent\EventDispatchEngine->MediaWiki\DomainEvent\{closure}(string) |
| #12 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdates.php(445) | MediaWiki\Deferred\MWCallableUpdate->doUpdate() |
| #13 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdates.php(187) | MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate) |
| #14 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdates.php(274) | MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate) |
| #15 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdatesScope.php(229) | MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, int) |
| #16 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdatesScope.php(158) | MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure) |
| #17 | /srv/mediawiki/php-1.45.0-wmf.22/includes/deferred/DeferredUpdates.php(268) | MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure) |
| #18 | /srv/mediawiki/php-1.45.0-wmf.22/includes/MediaWikiEntryPoint.php(656) | MediaWiki\Deferred\DeferredUpdates::doUpdates() |
| #19 | /srv/mediawiki/php-1.45.0-wmf.22/includes/MediaWikiEntryPoint.php(478) | MediaWiki\MediaWikiEntryPoint->restInPeace() |
| #20 | /srv/mediawiki/php-1.45.0-wmf.22/includes/MediaWikiEntryPoint.php(436) | MediaWiki\MediaWikiEntryPoint->doPostOutputShutdown() |
| #21 | /srv/mediawiki/php-1.45.0-wmf.22/includes/MediaWikiEntryPoint.php(193) | MediaWiki\MediaWikiEntryPoint->postOutputShutdown() |
| #22 | /srv/mediawiki/php-1.45.0-wmf.22/index.php(44) | MediaWiki\MediaWikiEntryPoint->run() |
| #23 | /srv/mediawiki/w/index.php(3) | require(string) |
| #24 | {main} | |