The return of rs.OffsetCurve is one polyline, but rs.JoinCurve requires more than two curves.
if you want to pull point to curve, you need use rs.CurveClosetPoint and rs.EvaluateCurve because input of rs.PullPoint is only surface and mesh.
you don’t need to use rs.JoinCurve this case.