Skip to main content
An apply or destroy can come back failed: a resource the cloud rejected, a permissions problem, a name clash. formae records exactly which resource broke and why. This guide shows how to read it.

See what broke

When a command comes back failed, switch to the detailed layout to see which resource broke and its error:
  formae status command                                                                                     ↻ live
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
     ID                          Command   Mode        Progress                         ✓    ✗    ◐    ○    Time
✗    3GnWjXDeziP4JuLFNnub3f23hGf apply     patch       failed 0/1                       0    1    0    0    00:20
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

  ▌ Resources
        Label ▲                                               Type                                Operation   Time
       incident-logs                                         AWS::S3::Bucket                     create      00:20
      test already exists (Service: S3, Status Code: 0, Request ID: null)

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  →←: column  s: toggle sort  space: expand  d: details  esc: back  q: quit                                ?: help
Here the create failed because the bucket name was already taken: the error line reads test already exists (Service: S3, Status Code: 0, Request ID: null). Pick a name that is not in use and apply again. The detailed layout gives you the resource label, its type, the operation formae attempted, and the provider error verbatim, so you can act on the cause rather than guess at it.

Find a specific failure

With no query, formae status command reports your most recent command. To find a specific failure, filter:
  formae status command                                                                                     ↻ live
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ▲   ID                          Command   Mode        Progress                   ✓    ✗    ◐    ○    Time    Age
✗    3Fsu27ZRJNwlWDPYesoTXwk7hXq apply     reconcile   failed 2/3                 2    1    0    0    01:06   20d
✗    3FsrQqQrqYKrgjzCVo6Nvch62ns apply     reconcile   failed 28/29               28   1    0    0    12:36   20d
✗    3FsqCdKnO2Qh0jAFGMfiiXQi5Ri apply     reconcile   failed 22/30               22   8    0    0    01:10   20d
✗    3FqBvbCCS1F5wgQUVFszRR4Rwgh destroy   -           failed 6/7                 6    1    0    0    01:48   21d
✗    3FpfrjzJvGkq1V1rcjJanxrY4qF apply     reconcile   failed 26/29               26   3    0    0    04:55   22d
✗    3FpPTiEKK7nXvtGKBsSaryi9ZKr apply     reconcile   failed 0/13                0    13   0    0    00:01   22d
✗    3FpNiE3GNCMye3uVJ79tScbvR5O apply     reconcile   failed 15/28               15   13   0    0    01:48   22d
✗    3FkfhkcC8ESxEJRneolwBFXFKuS apply     reconcile   failed 5/9                 5    4    0    0    00:51   23d
✗    3FjMidSHpIDv3qpv8HsYUmQvfwM apply     reconcile   failed 24/26               24   2    0    0    02:24   24d
✗    3FjLo0gs0Rp73tLjOEnVzY4kYnt apply     reconcile   failed 12/14               12   2    0    0    01:33   24d

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  / status:Failed                                                                                    /: edit query
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Command queries filter on id, status, client, command, and stack; on a shared agent, add client:me to see only your own commands. For pipelines, add --output-consumer=machine --output-schema=json.

See also