CaptureIO now returns an empty string instead of nil when there is no capture
Only raise on conflicts coming from functions