When editing an Order (either through the UI or via an Apex program that does DML), I get
First exception on row 0 with id 801.... INSUFFICIENT_ACCESS_OR_READONLY insufficient access rights on object id: 
I can edit other orders, why not this one?
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Answering to add to KB of these often inscrutable errors.
There could be several reasons but in our org, here was the issue:
- Account and Contact: Private
- Order: Controlled by parent
Account sharing rule:
Foo: Shared Read/Write with Group A
Bar: Shared Read/Write with Group B
- Running User: Alice
- Order’s Owner: Bob
- Order’s Account Owner: Cary
- Order’s Account’s RecordType:
- Running user’s group membership:
Running user permissions
- View All on Order
- Modify All on Account
- Modify on Order (but not Modify All)
- Edit access to an Order is controlled by Parent.
- Neither the Order nor its parent Account was owned by the running user
- Modify All on Account does not extend downward implicitly as Modify All on Order
- Although Edit access to the Account was extended R/W via a sharing rule to members of Group A (because Account was record type
Foo), the running user was not a member of Group A and hence could not edit the Order because the running user was not shared R/W to the order’s Account.
- Grant edit access to the Order’s Account to the running user (say, via manual sharing or Account Criteria-based sharing rules)