Skip to content

fix: proper error message for non-existing remote sources#2360

Merged
snakster merged 2 commits into
mainfrom
snk-fix-error-msg
May 27, 2026
Merged

fix: proper error message for non-existing remote sources#2360
snakster merged 2 commits into
mainfrom
snk-fix-error-msg

Conversation

@snakster
Copy link
Copy Markdown
Contributor

@snakster snakster commented May 27, 2026

What this PR does / why we need it:

This PR fixes the error message that is shown when a remote bundle/component source is not found. See the linked issue for details. New error looks like this:

Error: unable to parse configuration
> /private/tmp/tm-test/bundle.tm.hcl:2,3-75: the source 'git::https://github.com/terramate-io/terramate.git//this-subdir-does-not-exist' does not exist

Which issue(s) this PR fixes:

Fixes #2319

Special notes for your reviewer:

no

Does this PR introduce a user-facing change?

yes, see changelog

Note

Cursor Bugbot is generating a summary for commit 8dec827. Configure here.

@snakster snakster requested a review from a team as a code owner May 27, 2026 09:25
@github-actions
Copy link
Copy Markdown

Preview of ubuntu/go tests in 8dec827

🔍 View Details on Terramate Cloud

.
generate/resolve

@github-actions
Copy link
Copy Markdown

Preview of macos-15/go tests in 8dec827

🔍 View Details on Terramate Cloud

.
generate/resolve

@github-actions
Copy link
Copy Markdown

## Package: benchmarks/changed
metric: time/op
ChangeDetection-4: old 1.52ms ± 4%: new 1.54ms ± 4%: delta: 0.00%
ChangeDetectionTFAndTG-4: old 1.43ms ± 4%: new 1.43ms ± 5%: delta: 0.00%
metric: alloc/op
ChangeDetection-4: old 356kB ± 0%: new 356kB ± 0%: delta: 0.00%
ChangeDetectionTFAndTG-4: old 248kB ± 0%: new 248kB ± 1%: delta: 0.00%
metric: allocs/op
ChangeDetection-4: old 2.40k ± 0%: new 2.40k ± 0%: delta: 0.00%
ChangeDetectionTFAndTG-4: old 1.70k ± 1%: new 1.70k ± 1%: delta: 0.00%

---

## Package: cloud
metric: time/op
CloudReadLines-4: old 561µs ±21%: new 677µs ± 9%: delta: 20.60%
CloudReadLine-4: old 3.19ms ± 5%: new 3.21ms ± 1%: delta: 0.00%
check failed: time/op=+20%
metric: alloc/op
CloudReadLines-4: old 3.12MB ± 0%: new 3.12MB ± 0%: delta: 0.00%
CloudReadLine-4: old 3.37MB ± 0%: new 3.37MB ± 0%: delta: 0.00%
metric: allocs/op
CloudReadLines-4: old 5.54k ± 0%: new 5.54k ± 0%: delta: 0.00%
CloudReadLine-4: old 60.0k ± 0%: new 60.0k ± 0%: delta: 0.00%

---

## Package: fs
metric: time/op
ListFiles-4: old 26.5µs ±11%: new 26.3µs ±13%: delta: 0.00%
metric: alloc/op
ListFiles-4: old 27.6kB ± 0%: new 27.6kB ± 0%: delta: 0.00%
metric: allocs/op
ListFiles-4: old 335 ± 0%: new 335 ± 0%: delta: 0.00%

---

## Package: generate
metric: time/op
Generate-4: old 699ms ±16%: new 750ms ±13%: delta: 7.39%
GenerateRegex-4: old 422ms ±30%: new 480ms ±17%: delta: 13.62%
metric: alloc/op
Generate-4: old 2.23GB ± 0%: new 2.23GB ± 0%: delta: 0.00%
GenerateRegex-4: old 922MB ± 0%: new 922MB ± 0%: delta: 0.00%
metric: allocs/op
Generate-4: old 25.7M ± 0%: new 25.7M ± 0%: delta: 0.00%
GenerateRegex-4: old 18.1M ± 0%: new 18.1M ± 0%: delta: 0.00%

---

## Package: hcl/ast
metric: time/op
TokensForExpressionComplex-4: old 786µs ± 7%: new 706µs ± 0%: delta: -10.07%
TokensForExpressionPlainStringNoNewline-4: old 302ns ± 4%: new 278ns ± 1%: delta: -7.87%
TokensForExpressionStringWith100Newlines-4: old 9.01µs ± 1%: new 8.78µs ± 7%: delta: 0.00%
TokensForExpressionObjectWith100KeysWithNumberValues-4: old 879µs ± 4%: new 861µs ± 1%: delta: -2.09%
TokensForExpression-4: old 737µs ± 5%: new 704µs ± 0%: delta: -4.45%
metric: alloc/op
TokensForExpressionComplex-4: old 393kB ± 0%: new 393kB ± 0%: delta: -0.01%
TokensForExpressionPlainStringNoNewline-4: old 512B ± 0%: new 512B ± 0%: delta: 0.00%
TokensForExpressionStringWith100Newlines-4: old 12.5kB ± 0%: new 12.5kB ± 0%: delta: 0.00%
TokensForExpressionObjectWith100KeysWithNumberValues-4: old 393kB ± 0%: new 393kB ± 0%: delta: 0.00%
TokensForExpression-4: old 393kB ± 0%: new 393kB ± 0%: delta: -0.01%
metric: allocs/op
TokensForExpressionComplex-4: old 4.75k ± 0%: new 4.75k ± 0%: delta: 0.00%
TokensForExpressionPlainStringNoNewline-4: old 20.0 ± 0%: new 20.0 ± 0%: delta: 0.00%
TokensForExpressionStringWith100Newlines-4: old 227 ± 0%: new 227 ± 0%: delta: 0.00%
TokensForExpressionObjectWith100KeysWithNumberValues-4: old 3.09k ± 0%: new 3.09k ± 0%: delta: 0.00%
TokensForExpression-4: old 4.75k ± 0%: new 4.75k ± 0%: delta: 0.00%

---

## Package: hcl/eval
metric: time/op
PartialEvalComplex-4: old 354µs ±23%: new 282µs ±16%: delta: -20.39%
PartialEvalSmallString-4: old 2.61µs ±15%: new 1.97µs ±21%: delta: -24.38%
PartialEvalHugeString-4: old 1.00ms ± 7%: new 0.89ms ± 5%: delta: -11.07%
PartialEvalHugeInterpolatedString-4: old 2.87ms ±18%: new 2.57ms ±27%: delta: -10.60%
PartialEvalObject-4: old 14.4µs ±15%: new 13.2µs ±10%: delta: -8.65%
metric: alloc/op
PartialEvalComplex-4: old 360kB ± 0%: new 360kB ± 0%: delta: 0.00%
PartialEvalSmallString-4: old 1.94kB ± 0%: new 1.94kB ± 0%: delta: 0.00%
PartialEvalHugeString-4: old 196kB ± 0%: new 196kB ± 0%: delta: 0.00%
PartialEvalHugeInterpolatedString-4: old 4.30MB ± 0%: new 4.30MB ± 0%: delta: 0.00%
PartialEvalObject-4: old 19.4kB ± 0%: new 19.4kB ± 0%: delta: 0.00%
metric: allocs/op
PartialEvalComplex-4: old 3.72k ± 0%: new 3.72k ± 0%: delta: 0.00%
PartialEvalSmallString-4: old 25.0 ± 0%: new 25.0 ± 0%: delta: 0.00%
PartialEvalHugeString-4: old 38.0 ± 0%: new 38.0 ± 0%: delta: 0.00%
PartialEvalHugeInterpolatedString-4: old 25.1k ± 0%: new 25.1k ± 0%: delta: 0.00%
PartialEvalObject-4: old 179 ± 0%: new 179 ± 0%: delta: 0.00%

---

## Package: ls
metric: time/op
FindDefinition/10_files-4: old 14.6µs ± 1%: new 15.9µs ± 3%: delta: 8.60%
FindDefinition/50_files-4: old 21.2µs ± 2%: new 22.2µs ± 2%: delta: 4.56%
FindDefinition/100_files-4: old 30.1µs ± 1%: new 31.0µs ± 3%: delta: 2.94%
FindDefinition/500_files-4: old 118µs ± 1%: new 118µs ± 4%: delta: 0.00%
FindReferences/10_files_5_refs-4: old 89.8µs ± 1%: new 90.9µs ± 2%: delta: 1.18%
FindReferences/50_files_10_refs-4: old 340µs ± 1%: new 344µs ± 3%: delta: 1.15%
FindReferences/100_files_20_refs-4: old 659µs ± 1%: new 677µs ± 7%: delta: 2.64%
FindReferences/500_files_50_refs-4: old 3.25ms ± 1%: new 3.30ms ± 2%: delta: 1.34%
Rename/10_files_5_refs-4: old 105µs ± 1%: new 108µs ± 4%: delta: 3.07%
Rename/50_files_10_refs-4: old 363µs ± 1%: new 365µs ± 2%: delta: 0.66%
Rename/100_files_20_refs-4: old 694µs ± 1%: new 700µs ± 1%: delta: 0.85%
SearchWorkspace/flat_100_files-4: old 620µs ± 2%: new 631µs ± 3%: delta: 1.77%
SearchWorkspace/flat_500_files-4: old 3.08ms ± 2%: new 3.10ms ± 1%: delta: 0.75%
SearchWorkspace/nested_100_files_5_deep-4: old 637µs ± 1%: new 640µs ± 1%: delta: 0.00%
SearchWorkspace/nested_500_files_5_deep-4: old 3.25ms ± 6%: new 3.14ms ± 1%: delta: -3.43%
ParseFile/small_file_10_lines-4: old 23.5µs ± 3%: new 22.9µs ± 2%: delta: -2.41%
ParseFile/medium_file_50_lines-4: old 102µs ± 3%: new 101µs ± 2%: delta: -0.90%
ParseFile/large_file_200_lines-4: old 429µs ± 4%: new 413µs ± 1%: delta: -3.66%
ParseFile/huge_file_1000_lines-4: old 2.26ms ±10%: new 2.13ms ± 2%: delta: -5.94%
metric: alloc/op
FindDefinition/10_files-4: old 15.2kB ± 0%: new 15.2kB ± 0%: delta: 0.00%
FindDefinition/50_files-4: old 20.1kB ± 0%: new 20.1kB ± 0%: delta: 0.00%
FindDefinition/100_files-4: old 26.4kB ± 0%: new 26.4kB ± 0%: delta: 0.00%
FindDefinition/500_files-4: old 72.8kB ± 0%: new 72.8kB ± 0%: delta: 0.00%
FindReferences/10_files_5_refs-4: old 87.0kB ± 0%: new 87.0kB ± 0%: delta: 0.01%
FindReferences/50_files_10_refs-4: old 335kB ± 0%: new 335kB ± 0%: delta: 0.01%
FindReferences/100_files_20_refs-4: old 646kB ± 0%: new 646kB ± 0%: delta: 0.01%
FindReferences/500_files_50_refs-4: old 3.13MB ± 0%: new 3.13MB ± 0%: delta: 0.00%
Rename/10_files_5_refs-4: old 105kB ± 0%: new 104kB ± 0%: delta: 0.00%
Rename/50_files_10_refs-4: old 359kB ± 0%: new 359kB ± 0%: delta: -0.00%
Rename/100_files_20_refs-4: old 677kB ± 0%: new 677kB ± 0%: delta: 0.00%
SearchWorkspace/flat_100_files-4: old 628kB ± 0%: new 628kB ± 0%: delta: 0.00%
SearchWorkspace/flat_500_files-4: old 3.09MB ± 0%: new 3.09MB ± 0%: delta: 0.00%
SearchWorkspace/nested_100_files_5_deep-4: old 636kB ± 0%: new 636kB ± 0%: delta: 0.00%
SearchWorkspace/nested_500_files_5_deep-4: old 3.13MB ± 0%: new 3.12MB ± 0%: delta: -0.02%
ParseFile/small_file_10_lines-4: old 34.7kB ± 0%: new 34.7kB ± 0%: delta: 0.00%
ParseFile/medium_file_50_lines-4: old 151kB ± 0%: new 151kB ± 0%: delta: 0.00%
ParseFile/large_file_200_lines-4: old 733kB ± 0%: new 733kB ± 0%: delta: 0.00%
ParseFile/huge_file_1000_lines-4: old 4.06MB ± 0%: new 4.06MB ± 0%: delta: 0.00%
metric: allocs/op
FindDefinition/10_files-4: old 209 ± 0%: new 209 ± 0%: delta: 0.00%
FindDefinition/50_files-4: old 291 ± 0%: new 291 ± 0%: delta: 0.00%
FindDefinition/100_files-4: old 392 ± 0%: new 392 ± 0%: delta: 0.00%
FindDefinition/500_files-4: old 1.19k ± 0%: new 1.19k ± 0%: delta: 0.00%
FindReferences/10_files_5_refs-4: old 960 ± 0%: new 960 ± 0%: delta: 0.00%
FindReferences/50_files_10_refs-4: old 3.81k ± 0%: new 3.81k ± 0%: delta: 0.00%
FindReferences/100_files_20_refs-4: old 7.34k ± 0%: new 7.34k ± 0%: delta: 0.00%
FindReferences/500_files_50_refs-4: old 35.9k ± 0%: new 35.9k ± 0%: delta: 0.00%
Rename/10_files_5_refs-4: old 1.15k ± 0%: new 1.15k ± 0%: delta: 0.00%
Rename/50_files_10_refs-4: old 4.09k ± 0%: new 4.09k ± 0%: delta: 0.00%
Rename/100_files_20_refs-4: old 7.74k ± 0%: new 7.74k ± 0%: delta: 0.00%
SearchWorkspace/flat_100_files-4: old 7.13k ± 0%: new 7.13k ± 0%: delta: 0.00%
SearchWorkspace/flat_500_files-4: old 35.1k ± 0%: new 35.1k ± 0%: delta: 0.00%
SearchWorkspace/nested_100_files_5_deep-4: old 7.18k ± 0%: new 7.18k ± 0%: delta: 0.00%
SearchWorkspace/nested_500_files_5_deep-4: old 35.2k ± 0%: new 35.2k ± 0%: delta: 0.00%
ParseFile/small_file_10_lines-4: old 315 ± 0%: new 315 ± 0%: delta: 0.00%
ParseFile/medium_file_50_lines-4: old 1.39k ± 0%: new 1.39k ± 0%: delta: 0.00%
ParseFile/large_file_200_lines-4: old 5.46k ± 0%: new 5.46k ± 0%: delta: 0.00%
ParseFile/huge_file_1000_lines-4: old 26.2k ± 0%: new 26.2k ± 0%: delta: 0.00%

---

## Package: stdlib
metric: time/op
TmAllTrueLiteralList-4: old 347µs ±11%: new 296µs ±13%: delta: -14.80%
TmAllTrueFuncall-4: old 14.4µs ±14%: new 9.5µs ± 9%: delta: -34.02%
TmAnyTrueLiteralList-4: old 2.71ms ±10%: new 2.07ms ±11%: delta: -23.34%
TmAnyTrueFuncall-4: old 11.6µs ±26%: new 9.0µs ± 7%: delta: -22.42%
TmTernary-4: old 1.17µs ±16%: new 1.13µs ±19%: delta: 0.00%
TmTryUnknownFunc-4: old 1.04µs ±10%: new 1.17µs ±17%: delta: 11.96%
TmTryUnknownVariable-4: old 1.07µs ±21%: new 1.15µs ±20%: delta: 7.14%
TmTryUnknownObjectKey-4: old 1.17µs ±19%: new 1.26µs ±14%: delta: 7.48%
SlugifyLargeList-4: old 1.20ms ±20%: new 1.27ms ± 5%: delta: 5.76%
metric: alloc/op
TmAllTrueLiteralList-4: old 320kB ± 0%: new 320kB ± 0%: delta: 0.00%
TmAllTrueFuncall-4: old 10.4kB ± 0%: new 10.4kB ± 0%: delta: 0.00%
TmAnyTrueLiteralList-4: old 2.09MB ± 0%: new 2.09MB ± 0%: delta: 0.00%
TmAnyTrueFuncall-4: old 10.5kB ± 0%: new 10.5kB ± 0%: delta: 0.00%
TmTernary-4: old 1.18kB ± 0%: new 1.18kB ± 0%: delta: 0.00%
TmTryUnknownFunc-4: old 784B ± 0%: new 784B ± 0%: delta: 0.00%
TmTryUnknownVariable-4: old 768B ± 0%: new 768B ± 0%: delta: 0.00%
TmTryUnknownObjectKey-4: old 952B ± 0%: new 952B ± 0%: delta: 0.00%
SlugifyLargeList-4: old 614kB ± 0%: new 614kB ± 0%: delta: 0.00%
metric: allocs/op
TmAllTrueLiteralList-4: old 5.93k ± 0%: new 5.93k ± 0%: delta: 0.00%
TmAllTrueFuncall-4: old 265 ± 0%: new 265 ± 0%: delta: 0.00%
TmAnyTrueLiteralList-4: old 59.6k ± 0%: new 59.6k ± 0%: delta: 0.00%
TmAnyTrueFuncall-4: old 267 ± 0%: new 267 ± 0%: delta: 0.00%
TmTernary-4: old 27.0 ± 0%: new 27.0 ± 0%: delta: 0.00%
TmTryUnknownFunc-4: old 21.0 ± 0%: new 21.0 ± 0%: delta: 0.00%
TmTryUnknownVariable-4: old 20.0 ± 0%: new 20.0 ± 0%: delta: 0.00%
TmTryUnknownObjectKey-4: old 23.0 ± 0%: new 23.0 ± 0%: delta: 0.00%
SlugifyLargeList-4: old 18.0k ± 0%: new 18.0k ± 0%: delta: 0.00%

---

## Package: tg
metric: time/op
ModuleDiscovery-4: old 32.6ms ±11%: new 30.2ms ±12%: delta: -7.38%
metric: alloc/op
ModuleDiscovery-4: old 36.8MB ± 0%: new 36.8MB ± 0%: delta: 0.02%
metric: allocs/op
ModuleDiscovery-4: old 451k ± 0%: new 451k ± 0%: delta: -0.00%

---

@snakster snakster merged commit 436aa7e into main May 27, 2026
17 checks passed
@snakster snakster deleted the snk-fix-error-msg branch May 27, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Incorrect error comparison causes misleading error when remote bundle subdirectory does not exist

1 participant