See in [this build](https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-noselenium-docker/59139/console) and others.
```
1) Wikibase\Repo\Tests\FederatedProperties\Api\SetClaimTest::testFederatedPropertiesFailure
TypeError: Argument 1 passed to PHPUnit\Framework\Assert::fail() must be of the type string, array given, called in /workspace/src/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php on line 33
/workspace/src/extensions/EventBus/ServiceWiring.php:27
/workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
/workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
/workspace/src/includes/MediaWikiServices.php:255
/workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:424
/workspace/src/extensions/EventBus/includes/EventBus.php:466
/workspace/src/extensions/EventBus/includes/EventBusHooks.php:329
/workspace/src/extensions/EventBus/includes/EventBusHooks.php:306
/workspace/src/includes/HookContainer/HookContainer.php:333
/workspace/src/includes/HookContainer/HookContainer.php:140
/workspace/src/includes/HookContainer/HookRunner.php:2881
/workspace/src/includes/Storage/PageUpdater.php:1384
/workspace/src/includes/libs/rdbms/database/Database.php:4499
/workspace/src/includes/libs/rdbms/database/DBConnRef.php:68
/workspace/src/includes/libs/rdbms/database/DBConnRef.php:641
/workspace/src/includes/deferred/AtomicSectionUpdate.php:39
/workspace/src/includes/deferred/DeferredUpdates.php:513
/workspace/src/includes/deferred/DeferredUpdates.php:390
/workspace/src/includes/deferred/DeferredUpdates.php:221
/workspace/src/includes/deferred/DeferredUpdatesScope.php:267
/workspace/src/includes/deferred/DeferredUpdatesScope.php:196
/workspace/src/includes/deferred/DeferredUpdates.php:242
/workspace/src/includes/deferred/DeferredUpdates.php:290
/workspace/src/includes/deferred/DeferredUpdates.php:129
/workspace/src/includes/Storage/PageUpdater.php:1319
/workspace/src/includes/Storage/PageUpdater.php:803
/workspace/src/extensions/Wikibase/repo/includes/Store/Sql/WikiPageEntityStore.php:375
/workspace/src/extensions/Wikibase/repo/includes/Store/Sql/WikiPageEntityStore.php:235
/workspace/src/extensions/Wikibase/lib/includes/Store/TypeDispatchingEntityStore.php:90
/workspace/src/extensions/Wikibase/repo/tests/phpunit/includes/FederatedProperties/Api/SetClaimTest.php:58
/workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:446
/workspace/src/maintenance/doMaintenance.php:106
```
EventBus’ `ServiceWiring.php`, line 27:
```lang=php
$services->getHttpRequestFactory()->createMultiClient(),
```
The `HttpRequestFactory::createMultiClient()` method signature:
```lang=php
public function createMultiClient( $options = [] ) {
```
The test case uses `MockHttpTrait`, where `makeMockHttpRequestFactory()` contains this:
```lang=php
if ( $request instanceof MultiHttpClient ) {
$mockHttpRequestFactory->method( 'createMultiClient' )
->willReturn( $request );
} else {
$mockHttpRequestFactory->method( 'createMultiClient' )
->willReturnCallback( [ TestCase::class, 'fail' ] );
}
```
`TestCase` inherits that `fail` method from the `Assert` class, with the signature:
```lang=php
public static function fail(string $message = ''): void
```
EventBus’ service wiring gets a mock “no requests” `HttpRequestFactory` and calls `createMultiClient()` on it, with no arguments. The default argument from the real `createMultiClient()` method is used (`[]`) and passed into the mock callback, `[ TestCase::class, 'fail' ]`. `TestCase::fail` then complains that it’s being called with an array instead of a message.
I’m not sure why this only started failing now – which part of that chain changed recently – but I think the fix ought to be that `MockHttpTrait` passes a callback into the mocks which wraps `TestCase::fail()` but discards any arguments with which it was called.