Skip to content

[REGRESSION]: TFS Project with non-ascii characters always redownloads sources #21935

@PatrickDahlin

Description

@PatrickDahlin

New issue checklist

Task name

Get sources

Breaking task version

4.269.0

Last working task version

4.2xx.x

Regression Description

I am not sure which version number was previous where it worked, but I know this broke when I updated to the version noted in this issue.

The problem here is that the Get sources part of the build checks for changes in the project, but is unable to compare the project name correctly, hence always redownloading all the sources for all the mapped sources.

This has been working before in an earlier version of the agent.

Even in the mapping stage of the "Get Sources"-task it reports the name incorrectly:
C:\agent\_work\5\s> vc workfold /cloak /workspace:ws_5_34 $/Opiferus - Ajastetut teht�v�t /collection:[DevOps Server URL Here] /loginType:OAuth /login:.,*** /noprompt
Note the '�' character in the project name, they're supposed to be the character 'ä'.
This happens for multiple of our projects that have these special characters in their name, so it's not a specific project issue.

Environment type (Please select at least one enviroment where you face this issue)

  • Self-Hosted
  • Microsoft Hosted
  • VMSS Pool
  • Container

Azure DevOps Server type

dev.azure.com (formerly visualstudio.com)

Azure DevOps Server Version (if applicable)

No response

Operation system

Windows 11
Also tested on a Windows Server 2022 machine

Relevant log output

2026-03-23T09:03:57.7469372Z ==============================================================================
2026-03-23T09:03:57.7469641Z Task         : Get sources
2026-03-23T09:03:57.7469736Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2026-03-23T09:03:57.7469805Z Version      : 1.0.0
2026-03-23T09:03:57.7469883Z Author       : Microsoft
2026-03-23T09:03:57.7469991Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2026-03-23T09:03:57.7470050Z ==============================================================================
2026-03-23T09:03:57.9110916Z Prepending Path environment variable with directory containing 'tf.exe'.
2026-03-23T09:03:57.9112824Z Setting environment variable TFVC_BUILDAGENT_POLICYPATH
2026-03-23T09:03:57.9115167Z Querying workspace information.
2026-03-23T09:03:58.7883535Z Workspace mappings are not matched for workspace ws_6_34
2026-03-23T09:03:58.7984437Z Expected mapping[15] server path: '$/Opiferus - Työajanmittaus'. Actual: '$/Opiferus - Ty�ajanmittaus'
2026-03-23T09:03:58.7985798Z ##[command]tf @tfs_cmd_d09b79b1-868d-49c5-bb31-ab172c33b247.txt

Full task logs with system.debug enabled

UNSUCCESSFUL RUN
 Starting: Checkout Opiferus - Tietovarasto@ to s
==============================================================================
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Prepending Path environment variable with directory containing 'tf.exe'.
Setting environment variable TFVC_BUILDAGENT_POLICYPATH
Querying workspace information.
Workspace mappings are not matched for workspace ws_6_34
Expected mapping[15] server path: '$/Opiferus - Työajanmittaus'. Actual: '$/Opiferus - Ty�ajanmittaus'
tf @tfs_cmd_a10d63e8-2a00-4e7f-aa9c-d7ff32b98550.txt
...
 
SUCCESSFUL RUN
 ==============================================================================
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Prepending Path environment variable with directory containing 'tf.exe'.
Setting environment variable TFVC_BUILDAGENT_POLICYPATH
Querying workspace information.
tf @tfs_cmd_c25dd145-159e-424e-a913-242a336c4fda.txt

C:\agent_work\5\s> vc undo /recursive C:\agent_work\5\s /loginType:OAuth /login:.,*** /noprompt
Opiferus - Tietovarasto\Development\www:
Undoing edit: Web.config
tf @tfs_cmd_ecfcedc7-a68d-4f6f-b177-153c468b042b.txt

C:\agent_work\5\s> vc get /version:31983 /recursive /overwrite C:\agent_work\5\s /loginType:OAuth /login:.,*** /noprompt
All files are up to date.

Repro steps

  • Make a TFS project in Azure DevOps with any of the characters 'åäö' in it's name
  • Make a secondary project with any name
  • When using task to get the sources from the org, cloak the project with the 'åäö' character in it
  • First build will always download sources so that's fine, but the second build should NOT redownload unchanged sources
  • Observe logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: ABTTAkvelon Build Tasks Team area of workbugregressionThis used to work, but a change in the service/tasks broke it.triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions