**Problem**
If an extension has implemented `UserIsBlockedFrom` and that extension returns `false` dynamically (i.e. not necessarily when a user has a block), but `Block::prevents('edit')` continues to return `true` (or the user does not have a block at all), then `Title::checkUserBlock` will return an empty array (indicating no errors):
```
lang=php
$useSlave = ( $rigor !== 'secure' );
if ( ( $action == 'edit' || $action == 'create' )
&& !$user->isBlockedFrom( $this, $useSlave )
) {
// Don't block the user from editing their own talk page unless they've been
// explicitly blocked from that too.
} elseif ( $user->isBlocked() && $user->getBlock()->prevents( $action ) !== false ) {
// @todo FIXME: Pass the relevant context into this function.
$errors[] = $user->getBlock()->getPermissionsError( RequestContext::getMain() );
}
return $errors;
```
**Solution**
If `User::isBlockedFrom` return `false` then the check should *always* return an error. It should return the block if the user has a block, or it should return a standard error message if they do not.