I wouldn't say it's your fault for not going through the exact UI logic, but more for not scoping the project properly from the beginning.
If there is a clear scope laid out in the initial contract it's more clear who is on the hook for anything outside the scope, and easier to recoup losses when the client fails to deliver the requirements properly.
If there is a clear scope laid out in the initial contract it's more clear who is on the hook for anything outside the scope, and easier to recoup losses when the client fails to deliver the requirements properly.