diff --git a/core/lib/Drupal/Core/Block/BlockManager.php b/core/lib/Drupal/Core/Block/BlockManager.php
index 026d810fc0..3e34372c6b 100644
--- a/core/lib/Drupal/Core/Block/BlockManager.php
+++ b/core/lib/Drupal/Core/Block/BlockManager.php
@@ -65,6 +65,11 @@ protected function getType() {
   public function processDefinition(&$definition, $plugin_id) {
     parent::processDefinition($definition, $plugin_id);
     $this->processDefinitionCategory($definition);
+
+    $build_method = new \ReflectionMethod($definition['class'], 'build');
+    if (!$build_method->hasReturnType() || $build_method->getReturnType()->getName() !== 'array') {
+      @trigger_error('Declaring ::build() without an array return typehint in ' . $definition['class']. ' is deprecated in drupal:9.1.0. Typehinting will be required before drupal:10.0.0. See https://www.drupal.org/node/xxxxxxx', E_USER_DEPRECATED);
+    }
   }
 
   /**
