Confusing diffs when unknowns are passed into set or list-nested blocks #1885
Labels
bug/diff
Bugs in computing Diffs and planning resource changes
kind/bug
Some behavior is incorrect or out of spec
resolution/fixed
This issue was fixed
Milestone
What happened?
There is machinery in MakeTerraformInputs specifically makeTerraformUnknown that tries to substitute reasonably shaped empty values for unknowns when the schema indicates lists or sets. Unfortunately this is involved in Check turnaround, so that Pulumi providers start swallowing these unknowns even at Check level, and definitely continue swallowing them during diffs.
Primarily this leads to surprising and unreliable Diff behavior where unknowns are replaced by empties.
But occasionally it also leads to substantial problems; in case of pulumi/pulumi-aws#3835 this uncovered a latent bug making the provider panic on this empty input that would not have otherwise occur in a normal program.
See also:
rds.resourceProxy
Panic pulumi-aws#3835Example
Customer repro:
Auths receives a secret.Arn which is unknown. However Check translates it to a known value.
Output of
pulumi about
N/A
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).
The text was updated successfully, but these errors were encountered: