Leases are there to prevent racing updates to a machine’s state. You can view what or who currently holds a lease against a machine using:
fly machine lease view <machine-id> --app <app-name>
Failed deploy processes might leave behind uncleared leases, you can clear those with the following:
fly machine lease clear <machine-id> --app <app-name>
Note: make sure a user is actually holding the lease and not a platform component like fly-proxy