TopoDS_Shell is created by the cut operation of TopoDS_Solid and TopoDS_Solid.

Hello.
When I try to cut shape1 by shape2, the result shape is corrupted.
Result shape include some TopoDS_Shell.
Is there something wrong with the input shape?

[Code]
BRepAlgoAPI_Cut cut( shape1, shape2 );
cut.Build();
if ( cut.IsDone() == Standard_False ) {
return;
}
TopoDS_Shape shape3 = cut.Shape();

[Environment]
Opencascade: V7.5.3
OS: Windows 10 Pro 64bit
CPU: Intel(R) Core(TM) i7-8550U
Memory: 16GB