ok this feels completely wrong but I cut
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
This out of my web.config for the main application.
I was really just seeing what happened to see if there was an underlying dependency or something, not expecting it to run.
It just carried on working, all the new functions I have added in the last few days still work.