We have a Processor that references a Controller Service (A), and A then references another Controller Service (B). The property value in A had a typo that caused it to reference an invalid service identifier. The error message read something along the lines of:
'XX' validated against 'YY' is invalid because: Controller Service is not valid. No controller service exists with this ID
This looks like 'YY' (referencing Controller Service A) was an invalid identifier, but in reality Controller Service A was referencing an invalid identifier.
Proposed fix: PropertyDescriptor, when validating a Controller Service and determining Controller Service is invalid should provide as its explanation
"Controller Service is not valid: " + result
"Controller Service is not valid: " + result.getExplanation()