Create an input file only reading your gmsh meshfile and enabling exodus output.
This file should look like
[Mesh]
[./fmg]
type = FileMeshGenerator
file = whatever.gmsh
[]
[]
[Outputs]
exodus = true
[]
Run it with the
option. This option only runs mesh-related operations. hte output block will allow to generate an exodus output.
Check the exodus output (usually named _in.e) to see if the domains are correctly assigned to each element (use ParaView or whatever).
If the domains are not assigned properly than Alex is probably right.
After that, create another input file utilizing the _in.e (exodus) as mesh input and add the BreakMeshByBlockGenerator.
run this with the --mesh-only option and see if all interfaces are identified.
If know we might have problem with BreakMeshByBlockGenerator.
Please keep in mind that BreakMeshByBlockGenerator only uses blocks to break the mesh, so if domains are correct interfaces should be correct. Therefore try to avoid creating interfaces or side sets in the gmsh.
Andrea