Converting lookup and master-detail relationships
Key Takeaway
Converting a lookup to master-detail needs a value in the lookup field on every record, and it changes the detail object's org-wide default to Controlled by Parent. Converting a master-detail to a lookup needs no roll-up summary fields on the master object, and for a custom object on the detail side it changes the org-wide default to Public Read/Write.
You can request to convert an existing relationship field from lookup to master-detail, or from master-detail to lookup. A conversion is more than a label change, because it also changes how the detail records are shared and reported on. Salesforce blocks the conversion when the data or the org setup isn't ready for the new relationship type.
What can block a conversion
If you're converting a lookup to master-detail...
Every record must have a value in the lookup field. Any record on the object with a null value in that field blocks the conversion, so you must fill in the blank lookups first.
If you're converting a master-detail to a lookup...
No roll-up summary fields can exist on the master object. After a roll-up summary field is created, you can't convert the master-detail relationship, so you must remove those roll-up summary fields first.
If a custom object already has two master-detail relationships...
Each custom object can have up to two master-detail relationships and many lookup relationships. This object has no room for a third, so another of its lookups can't become master-detail.
If a relationship goes from an object to itself (a self-relationship)...
It must be a lookup relationship, so master-detail isn't an option. A single record can't be linked to itself, but two records can point to each other.