Theme a block with #theme and twig template file

My custom module theme template is not render by Drupal for some reasons.

In my .module file I implement the hook_theme and define my theme settings:

/**  * Implements hook_theme().  */ function promotional_overlay_block_theme($  existing, $  type, $  theme, $  path) {   return [     'promotional_overlay_block' => [       'variables' => [         'config' => NULL,       ],     ],   ]; } 

I then implement the #theme in hook_preprocess_block variable:

 /**   * Implements hook_preprocess_block().   */  function promotional_overlay_block_preprocess_block(&$  variables) {   $  blockContent = $  variables['content']['#block_content'];   $  variables['promotionalOverlay'] = [         '#theme' => 'promotional_overlay_block',         '#config' => ['title' => 'hello world', 'body' => 'test body content'],         '#cache' => [           'keys' => ['promotional_overlay_block', $  blockContent->id()],           'tags' => $  blockContent->getCacheTags(),           'max-age' => 0,         ]       ];     } 

I do have my template file in the following location:

templates/promotional-overlay-block.html.twig 

So, I assign my custom block to the footer region of the page, and it doesn’t render through my template. It just show up the default block render without the template in my module. I did search the page HTML source code, and I can’t see my twig template there.

My Question, how can I theme my block using my template file?