Our migration from Azure DevOps 2022 to 2025 is causing issues after the upgrade from Elasticsearch v7 to v8; the installation did not report any errors, but the Elastic instance was showing an error.
The logs indicated that some indices were still on v6, which is surprising as we were already using a version of DevOps that used Elasticsearch v7.
=> We therefore decided to perform a clean reinstallation and repair the Elasticsearch instance (by deleting the directory and running Repair-Search.ps1).
Unfortunately, the scripts in the ADO_Server_Diagnostics_2025 version appear to have some issues:
-
The recommended script, Troubleshooting\Repair-Search.ps1, crashes on launch because it depends on a module Common.psm1 that is not
present in the Utils directory (
|
Import-Module "$PSScriptRoot\Utils\Common.psm1" -DisableNameChecking -Force -Verbose:$false |
)
To resolve this, we tried copying the version available in 2022; this works, but we cannot guarantee it. Could you please fix this issue?
-
Re-indexing of the “Wiki” and “WorkItem” works without any problems; however, it does not work for the “Code” ItemType.
The script correctly identifies that the index is missing in Elasticsearch and attempts to create a mapping using the Test-IndicesHaveUnsupportedMappings method; Elasticsearch returns a 400.
Message: GET _mapping/SourceNoDedupeFileContract failed with status code [400] unexpectedly.
[2026-08-19T13:12:03Z][Verbose] Request Uri = [http://localhost:9200/code_sourcenodedupefilecontractv3_1421_shared_94814f29-47cc-46f9-b048-4caa32360ba3]
[2026-08-19T13:12:03Z][Verbose] Response = [{
"Content": null,
"ErrorMessage": "Invoke-WebRequest : Le serveur distant a retourné une erreur : (404) Introuvable.\r\nAu caractère C:\\temp\\Code-Search-master\\ADO_Server_Diagnostics_2025\\Troubleshooting\\Utils\\Common.psm1:236 : 25\r\n+ ... $response = Invoke-WebRequest -Method $Method -Uri $uri -Credential $ ...\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n + CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebEx \r\n ception\r\n + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand\r\n \r\n",
"StatusCode": 404
}]
[2026-08-19T13:12:03Z][Error] Indexing index name in SQL [code_sourcenodedupefilecontractv3_1421_shared_94814f29-47cc-46f9-b048-4caa32360ba3] does not exist in Elasticsearch cluster at [http://localhost:9200/]. Re-indexing is required.
[2026-08-19T13:12:03Z][Warn] Actions recommended are [Restart-Indexing].
[2026-08-19T13:12:03Z][Info] ======================================================================================
[2026-08-19T13:12:03Z][Info] Executing analyzer [Test-IndicesHaveUnsupportedMappings]...
[2026-08-19T13:12:03Z][Verbose] ParentPath = [#\Service\ALMSearch\Settings\].
[2026-08-19T13:12:03Z][Verbose] ChildItem = [DefaultCodeDocumentContractType\].
[2026-08-19T13:12:03Z][Verbose] Supported document contract type for entity type [Code] = [SourceNoDedupeFileContractV3].
[2026-08-19T13:12:03Z][Verbose] Request Uri = [http://localhost:9200/_mapping/SourceNoDedupeFileContract]
[2026-08-19T13:12:03Z][Verbose] Response = [{
"Content": null,
"ErrorMessage": "Invoke-WebRequest : {\"error\":\"no handler found for uri [/_mapping/SourceNoDedupeFileContract] and method [GET]\"}\r\nAu caractère C:\\temp\\Code-Search-master\\ADO_Server_Diagnostics_2025\\Troubleshooting\\Utils\\Common.psm1:236 : 25\r\n+ ... $response = Invoke-WebRequest -Method $Method -Uri $uri -Credential $ ...\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n + CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebEx \r\n ception\r\n + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand\r\n",
"StatusCode": 400
}]
[2026-08-19T13:12:03Z][Error] Repair-Search failed with following exception:
Message:
GET _mapping/SourceNoDedupeFileContract failed with status code [400] unexpectedly.
Au caractère C:\temp\Code-Search-master\ADO_Server_Diagnostics_2025\Troubleshooting\Analyzers\Test-IndicesHaveUnsupport
edMappings.psm1:78 : 13
+ throw "GET $command failed with status code [$($response. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (GET _mapping/So...] unexpectedly.:String) [], RuntimeException
+ FullyQualifiedErrorId : GET _mapping/SourceNoDedupeFileContract failed with status code [400] unexpectedly.
Stack Trace:
à Test-IndicesHaveUnsupportedMappings, C:\temp\Code-Search-master\ADO_Server_Diagnostics_2025\Troubleshooting\Analyzers\Test-IndicesHaveUnsupportedMappings.psm1 : ligne 78
à <ScriptBlock>, C:\temp\Code-Search-master\ADO_Server_Diagnostics_2025\Troubleshooting\Repair-Search.ps1 : ligne 155
à <ScriptBlock>, <Aucun fichier> : ligne 1
In the Test-IndicesHaveUnsupportedMappings analyser, there is a specific condition that applies only when the entityType is ‘Code’ and which will trigger a call to _mapping/SourceNoDedupeFileContract and _mapping/SourceNoDedupeFileContractV2
|
$unsupportedMappingNames = |
|
@{ |
|
"Code" = @("SourceNoDedupeFileContract", "SourceNoDedupeFileContractV2") |
|
} |
|
|
|
if (!$unsupportedMappingNames.ContainsKey($EntityType)) |
|
{ |
|
Write-Log "This analyzer is not supported for entity type [$EntityType]." |
|
return @() |
|
} |
|
|
|
# Make sure the unsupported mappings defined above are not actually supported. This is just to make sure the script has no bugs. |
|
$supportedDocumentContractType = Get-SupportedDocumentContractType -SQLServerInstance $SQLServerInstance -ConfigurationDatabaseName $ConfigurationDatabaseName -EntityType $EntityType |
|
$supportedMapping = Get-MappingName -DocumentContractType $supportedDocumentContractType |
|
if ($unsupportedMappingNames[$EntityType].Contains($supportedMapping)) |
|
{ |
|
throw "List of unsupported mapping names and/or expected mapping name are incorrectly setup. They both have [$mappingName] in common. Fix the bug in the script." |
|
} |
|
|
|
# Get all indices with unsupported mappings |
|
foreach ($unsupportedMappingName in $unsupportedMappingNames[$EntityType]) |
|
{ |
|
$command = "_mapping/$unsupportedMappingName" |
|
$response = Invoke-ElasticsearchCommand -ElasticsearchServiceUrl $ElasticsearchServiceUrl -ElasticsearchServiceCredential $ElasticsearchServiceCredential -Method Get -Command $command -Verbose:$VerbosePreference |
|
|
Repair-Search_2026-08-19T13-11-58Z.log
Our migration from Azure DevOps 2022 to 2025 is causing issues after the upgrade from Elasticsearch v7 to v8; the installation did not report any errors, but the Elastic instance was showing an error.
The logs indicated that some indices were still on v6, which is surprising as we were already using a version of DevOps that used Elasticsearch v7.
=> We therefore decided to perform a clean reinstallation and repair the Elasticsearch instance (by deleting the directory and running Repair-Search.ps1).
Unfortunately, the scripts in the ADO_Server_Diagnostics_2025 version appear to have some issues:
The recommended script, Troubleshooting\Repair-Search.ps1, crashes on launch because it depends on a module Common.psm1 that is not
present in the Utils directory (
Code-Search/ADO_Server_Diagnostics_2025/Troubleshooting/Repair-Search.ps1
Line 121 in d4bad2a
To resolve this, we tried copying the version available in 2022; this works, but we cannot guarantee it. Could you please fix this issue?
Re-indexing of the “Wiki” and “WorkItem” works without any problems; however, it does not work for the “Code” ItemType.
The script correctly identifies that the index is missing in Elasticsearch and attempts to create a mapping using the Test-IndicesHaveUnsupportedMappings method; Elasticsearch returns a 400.
Message: GET _mapping/SourceNoDedupeFileContract failed with status code [400] unexpectedly.
In the Test-IndicesHaveUnsupportedMappings analyser, there is a specific condition that applies only when the entityType is ‘Code’ and which will trigger a call to _mapping/SourceNoDedupeFileContract and _mapping/SourceNoDedupeFileContractV2
Code-Search/ADO_Server_Diagnostics_2025/Troubleshooting/Analyzers/Test-IndicesHaveUnsupportedMappings.psm1
Lines 37 to 61 in d4bad2a
Repair-Search_2026-08-19T13-11-58Z.log