Logger not injected in `create()`, causing fatal error on error paths
## Problem `SearchApiAiSearchBackend::create()` does not inject the logger service. The class calls `$this->logger->error()` inside `doSearch()` when something goes wrong. Because the property is never set, any error path throws a PHP fatal instead of writing a log entry. In practice this means a misconfigured provider produces a fatal error rather than a clear watchdog message. The real problem is hidden. ## Steps to reproduce 1. Install `ai_search`. 2. Configure a Search API index with the AI Search backend. 3. Set an embeddings engine that is misconfigured (wrong provider ID, missing API key, or the provider module is uninstalled). 4. Run any search query. 5. Observe: PHP fatal referencing `$this->logger` being null, rather than a log entry describing the actual failure. ## Proposed resolution Add `$instance->setLogger(...)` to `create()` alongside the other service injections: ```php public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { $instance = parent::create($container, $configuration, $plugin_id, $plugin_definition); $instance->vdbProviderManager = $container->get('ai.vdb_provider'); // ... other injections ... $instance->setLogger($container->get('logger.factory')->get('ai_search')); return $instance; } ``` ## Notes This affects all VDB providers, not just embedding-free ones. Any error path inside `doSearch()` (network timeout, API quota, misconfigured provider) will hit the null logger and throw a fatal instead of writing a log entry. Found while building [ai_pageindex](https://www.drupal.org/project/ai_pageindex), a VDB provider that uses LLM reasoning instead of embeddings. I did a quick search of the issue queue and did not find an identical report. If this is a duplicate, please share the link and close this one.
issue