I have always needed to do ISBLANK() checks in any formulas that are used in process builder. Otherwise, there is a risk that a null reference error will kill the process. Notably, this includes the contents of any formula fields referenced in the process builder, not only the formulas directly defined in PB.
Your cited error message isn't specifically a null reference error, but it may be related. That portion of Process Builder has been recently updated in Spring '19, so the issue may now appear differently.
In processes and flows, a formula can reference a record’s field via a record variable or lookup relationship field. At run-time, when the record variable or lookup relationship field is null, the formula sometimes returns null. Otherwise, it returns an unhandled exception. With this update, the formula always returns a null value when the record variable or lookup relationship field is null. This update doesn’t affect merge fields.
In your case, there are a lot of relationships included in that first line (
[Contact].Account.Owner.UserRole.DeveloperName); if anything before
DeveloperName is null, an error might surface.
Assuming that this is the issue, Derek F is right in pointing out that the order of operations is important; you can put your ISBLANK checks first, and have the formula return false before the null relationships are traversed.
[Contact].Account.OwnerId != '005XXXXXXXXXXXXXX',
([Contact].Account.Owner.UserRole.DeveloperName = 'Marketing Rep'),
([Contact].Account.Owner.IsActive) = true,
([Contact].Account.Owner.Profile.Name ) = 'Marketing',
([Contact].Account.RecordType.DeveloperName) = 'Supplier_Account',
([Contact].Account.ShippingCountry = 'USA'),
There may be some other things you need to do in there, such as verifying that the owner is a user, prior to traversing to it as a user (it may also be a queue etc). But the basic idea is that you need to verify that a relationship can be used (typically by being non-null) prior to actually using the relationship.