Unexpected Behavior with CreateBlendSurface API on Circular Surfaces

I am trying to reproduce the result of the BlendSrf command using the RhinoCommon API method Rhino.Geometry.Brep.CreateBlendSurface. As a simple test, I created a circular surface, split its perimeter into two halves, and then attempted to blend these two edges in order to reconstruct the original circular surface.

While the BlendSrf command successfully recreates the circular surface, CreateBlendSurface does not produce the expected geometry. I’m not sure whether there is a bug in the CreateBlendSurface function or if there is an issue with my code. I would greatly appreciate any insights or suggestions from those who have encountered a similar situation.

Below is a simplified version of the code I used:

import Rhino

edges = surface.Edges

edge0 = edges[0]

face_index_0 = edge0.AdjacentFaces()[0]
if face_index_0 is None:
    raise ValueError("Edge does not have a valid face.")

face0 = surface.Faces[face_index_0]

domain = edge0.Domain

middle = (domain[0] + domain[1]) * 0.5

interval0 = Rhino.Geometry.Interval(domain[0], middle)
interval1 = Rhino.Geometry.Interval(middle, domain[1])

rev0 = False
rev1 = True

continuity = Rhino.Geometry.BlendContinuity.Position

patched_surface = Rhino.Geometry.Brep.CreateBlendSurface(
    face0, edge0, interval0, rev0, continuity,
    face0, edge0, interval1, rev1, continuity
)

Has anyone else experienced this behavior or can suggest a different approach to achieve the expected circular surface using CreateBlendSurface? Any advice or guidance is much appreciated.

Reproduced Results via API

Expected Results

surface-test.gh (18.3 KB)