Pipelines are not a visible field on an opportunity but can easily be added to the screen via the customiser and that add the option to the customer to change the pipeline it is in.
This can work okay, but the two pipelines need to contain the status the opportunity is in to move successfully.
If the current status is not in the new Pipeline you get an Entity Reference error.
There are two ways to resolve this:-
1) Move the opportunity to a status that that the new pipeline shares and then update the pipeline.
2) If the pipelines share no statuses, then move it out of the current pipeline, change the status to one that is in the new pipeline and then assign a pipeline.
Both options are painful.
It would be nice if when you change a pipeline, it checks to see if the current status is in the new pipleline, if so it keeps the Opportunity in that status, if it does not it should assign the first status in the new pipeline.