Hello @kguilbert ,
I have reviewed the following configuration guide for PTP
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/16-11/configuration_guide/lyr2/b_1611_lyr2_9300_cg/configuring_precision_time_protocol__ptp_.html#task_lhv_hfy_zcb
what do you see in the output of show ptp interface ?
in the config guide above we see a last line like the following:
>>
Sync fault limit: 500000000
this looks like to be a timer for fault .
what do you do now to recover from Faulty state ?
Do you unconfigure PTP on the interface and then you reconfigure it ?
Device(config-if)# no ptp enable
or you use a shut / no shut of the interface ?
Edit:
I have seen a command introduced in 17.5 that allows to set a port as primary ( providing clock ) it may be something to try if feasible for you.
>> Support was introduced to set a port permanently as primary (master) using the ptp role primary command.
Hope to help
Giuseppe