How can I change contract status from active to draft?
Why we can't modify invoice or active contract what is the reason behind this policy ?
Once a Contract has an Active or Invoiced status there are no out of the box methods for changing the status back to Draft. The design of this is so that you cannot edit the Contract record, but you can get around this with a custom workflow activity.
I believe this is to avoid the contract being modified when it is already running. But nerveless, you should stop to use contract as this will be deprecated soon.
Alternative, you can look for "Entitlement" to replace the contract functionality.
Business Applications communities