When creating a flow in a solution, Power Automate indicates that flows in a solution must use connection references. If they do not the current designer will not work.
However. Microsoft documentation states that flows used as child flows must use embedded connections. There are no clues in the documentation as to whether a connection reference does or doesn't count as an embedded connection, but if you just use a connection reference in a child flow, then when you try to save the parent flow you will get an error stating that a child flow cannot be used if it uses a run only user connection.
You can go to the details page for the child flow, select 'edit' Run Only Users and there for your connection you can change from "Provided by run-only user" to a specific connection.
In an unmanaged solution this will now work. However there are several aspects of this configuration that are puzzling.
Firstly. If you edit the child flow and look at the details for the action using the connection you will see that it is still configured to use the connection reference. But in the details page under Run only users it is configured to use a specific connection directly. How can both of these be correct?
Secondly. There doesn't seem to be any way to know which connection a connection reference actually uses. The connections are all named after the user and there doesn't appear to be any way to rename them.
Thirdly. If a child flow is running using a connection with embedded credentials. Isn't that going to mean that any updates to SharePoint will be recorded as having been made by that user instead of the user that actually triggered the flow. If so that completely destroys any hope of having a functioning audit trail. This is simply not correct, backend systems should not be updated using global or admin credentials.
Lastly. Although this works in an unmanaged solution, what is going to happen to connectors in child flows that seem to be both connection references and embedded connections at the same time when I import this solution into a new environment as a managed solution? I have very little confidence that this will work, or that I will be able to make sense out of all the possible ways it could fail.
Is there an explanation for all of this anywhere that makes sense of the situation? Because this all feels like a cobbled together mess to me that I really don't really comfortable building enterprise applications out of.