I have this often. It's usually point 0. In this scenario I'd probably set my normals relative to the circle's center (Polyframe Style set to Primitive Centroid), or "@N=getbbox_center(0)-@P;" in a wrangle. In looping but not circular geometry I manually set point 0's attributes in a wrangle (like averaging its neighbors attributes, or manually calculating the tangent from the geometry's last point). If that doesn't work I resample to a gazillion points and interpolate. If that's not an option I clip half the geometry off and mirror it. If that's not an option I delete my graph and abandon the project.
Hope you get a cleaner answer, I've been wondering whether there's an easy, universal solution.