gitlab_documentation_search tool fails with 'title' None error when matched documents have null title metadata
### Summary
The `gitlab_documentation_search` tool (used by GitLab Duo agents) intermittently fails with the error:
`ToolException: Unexpected error executing tool gitlab_documentation_search: 'title' None
`
The failure appears to be caused by documentation pages in the search index that have a `None`/null `title` field. When the tool's result serialization attempts to access the `title` attribute on these results, it raises an unhandled exception instead of returning results gracefully.
### Reproduction
The following queries consistently fail:
| Query | Result |
|-------|--------|
| `PostgreSQL version requirements` | ❌ `'title' None` |
| `upgrade notes GitLab 18` | ❌ `'title' None` |
The following queries succeed (for comparison):
| Query | Result |
|-------|--------|
| `AI Gateway installation` | ✅ Returns results |
| `Gitaly configuration` | ✅ Returns results |
| `Sidekiq troubleshooting` | ✅ Returns results |
| `GitLab Runner executor types` | ✅ Returns results |
All successful results return documents with populated `source_title` fields. The failing queries likely match documents where the title metadata is missing or null in the index.
### Expected behavior
The tool should return search results even when matched documents have a null or missing `title` field. A reasonable fallback would be to substitute an empty string, the `source_url`, or a placeholder like `"(untitled)"`.
### Actual behavior
The tool raises an unhandled `ToolException` and returns no results. The entire query fails, not just the individual result with the missing title.
### Impact
This affects GitLab Duo custom agents that rely on `gitlab_documentation_search` for retrieving official documentation. When the tool fails, agents must fall back to slower methods (`get_repository_file` with branch-specific refs, `gitlab_blob_search`), which increases response latency and requires knowing the exact file paths in advance.
Queries about PostgreSQL requirements and upgrade notes are common in support contexts, so this failure pattern has a disproportionate impact on support-related agent workflows.
### Environment
* Observed via GitLab Duo custom agent tooling (April 2026)
* Tool: `gitlab_documentation_search`
* No specific GitLab version dependency; this is a tool/backend issue
issue