Hi @phil.owen
You only need the one ‘relation’, this is explained in the WP_Query docs.
I’m not sure why your query is not working, perhaps the mystery post which is appearing does contain a blank value in the DB containing the custom field.
Maybe your compare needs to check if the value is not “”, this will allow the custom field to exist in the db, but not be found if it is blank