Assertion error on integrating over parts of the surface

Hi all,

I am trying to include a term to the weak form that involved integrating over parts of the domain surface. After some headaches with the actual problem, I boiled down the error to this MWE (slightly obscuring the mathematics):

import dolfinx as dfx

from mpi4py.MPI import COMM_WORLD as comm

import numpy as np

import ufl


def create_boundary_measure(mesh, marker):

    tdim = mesh.topology.dim
    fdim =  tdim - 1

    facets = dfx.mesh.locate_entities(mesh, fdim, marker)

    facet_markers = np.full_like(facets, 42)

    facet_tag = dfx.mesh.meshtags(mesh, fdim, facets, facet_markers)

    ds = ufl.Measure("ds", domain=mesh, subdomain_data=facet_tag)
    ds = ds(42)

    return ds


mesh = dfx.mesh.create_rectangle(comm, ((0., 0.), (1, 42)), (128, 128))

V = dfx.fem.functionspace(mesh, "P1")
V0 = dfx.fem.functionspace(mesh, "P2")

v = ufl.TestFunction(V)

M = dfx.fem.Function(V)
M0 = dfx.fem.Function(V0)

vel = ufl.as_vector([dfx.fem.Function(V),
                     dfx.fem.Function(V)])

n = ufl.FacetNormal(mesh)

un_out = (ufl.dot(vel, n) + abs(ufl.dot(vel, n))) / 2.0  # type: ignore

form = -ufl.dot(ufl.nabla_grad(v), M * vel) * ufl.dx  # type: ignore

form += ufl.dot(v, un_out * M) * ufl.ds  # <- Apparently this term causes the issue in conjunction with.

form += v * (vel[1] * M0).dx(1) * ufl.dx

ds_outer = create_boundary_measure(mesh, lambda x: np.isclose(x[0], 1))

M_outer = dfx.fem.Constant(mesh, 0.5 * 1**2)

un_in = (ufl.dot(vel, n) - abs(ufl.dot(vel, n))) / 2.0  # type: ignore
form += ufl.inner(v,  un_in * M_outer) * ds_outer  # <- ... this term.

dfx.fem.form(form)

The error message is

Traceback (most recent call last):
  File "/Users/---/Python/facet_measure_bug_MWE.py", line 57, in <module>
    dfx.fem.form(form)
    ~~~~~~~~~~~~^^^^^^
  File "/Users/---/.local/miniforge/envs/hurr_bl/lib/python3.13/site-packages/dolfinx/fem/forms.py", line 337, in form
    return _create_form(form)
  File "/Users/---/.local/miniforge/envs/hurr_bl/lib/python3.13/site-packages/dolfinx/fem/forms.py", line 331, in _create_form
    return _form(form)
  File "/Users/---/.local/miniforge/envs/hurr_bl/lib/python3.13/site-packages/dolfinx/fem/forms.py", line 249, in _form
    assert all([d is data[0] for d in data])
           ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

indicating some error related to integrating over different subdomains. This is not what I am intending, so I guess I do not understand how to construct the integral measure ds_outer properly.
Interestingly, if I comment-out either of the two lines containing the surface measures ufl.ds and ds_outer, the compilation runs through.

Is this intended behavior, and if so, how would I achieve and integration over the sub-portion of the surface?

Thanks in advance for your help!

Best,
Tom

PS: My env is

#
# Name                    Version                   Build  Channel
adios2                    2.10.2          mpi_openmpi_py313he8d0cd2_5    conda-forge
aiohappyeyeballs          2.6.1              pyhd8ed1ab_0    conda-forge
aiohttp                   3.11.16         py313ha9b7d5b_0    conda-forge
aiosignal                 1.3.2              pyhd8ed1ab_0    conda-forge
anyio                     4.9.0              pyh29332c3_0    conda-forge
aom                       3.9.1                h7bae524_0    conda-forge
appnope                   0.1.4              pyhd8ed1ab_1    conda-forge
argon2-cffi               23.1.0             pyhd8ed1ab_1    conda-forge
argon2-cffi-bindings      21.2.0          py313h20a7fcf_5    conda-forge
arrow                     1.3.0              pyhd8ed1ab_1    conda-forge
asttokens                 3.0.0              pyhd8ed1ab_1    conda-forge
async-lru                 2.0.5              pyh29332c3_0    conda-forge
attrs                     25.3.0             pyh71513ae_0    conda-forge
babel                     2.17.0             pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.13.3             pyha770c72_0    conda-forge
bleach                    6.2.0              pyh29332c3_4    conda-forge
bleach-with-css           6.2.0                h82add2a_4    conda-forge
blosc                     1.21.6               h7dd00d9_1    conda-forge
brotli                    1.1.0                hd74edd7_2    conda-forge
brotli-bin                1.1.0                hd74edd7_2    conda-forge
brotli-python             1.1.0           py313h3579c5c_2    conda-forge
bzip2                     1.0.8                h99b78c6_7    conda-forge
c-ares                    1.34.5               h5505292_0    conda-forge
c-blosc2                  2.17.1               h9cbb436_0    conda-forge
ca-certificates           2025.4.26            hbd8a1cb_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
cairo                     1.18.4               h6a3b0d2_0    conda-forge
cctools_osx-arm64         1010.6               h3b4f5d3_6    conda-forge
certifi                   2025.4.26          pyhd8ed1ab_0    conda-forge
cffi                      1.17.1          py313hc845a76_0    conda-forge
cftime                    1.6.4.post1              pypi_0    pypi
charset-normalizer        3.4.1              pyhd8ed1ab_0    conda-forge
clang                     18.1.8          default_h474c9e2_9    conda-forge
clang-18                  18.1.8          default_hf90f093_9    conda-forge
clang_impl_osx-arm64      18.1.8              h2ae9ea5_24    conda-forge
clang_osx-arm64           18.1.8              h07b0088_24    conda-forge
clangxx                   18.1.8          default_h1ffe849_9    conda-forge
colorama                  0.4.6              pyhd8ed1ab_1    conda-forge
colorcet                  3.1.0              pyhd8ed1ab_1    conda-forge
comm                      0.2.2              pyhd8ed1ab_1    conda-forge
compiler-rt               18.1.8               h856b3c1_1    conda-forge
compiler-rt_osx-arm64     18.1.8               h832e737_1    conda-forge
contourpy                 1.3.1           py313h0ebd0e5_0    conda-forge
coverage                  7.8.0           py313ha9b7d5b_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_1    conda-forge
cyrus-sasl                2.1.27               h60b93bd_7    conda-forge
dav1d                     1.2.1                hb547adb_0    conda-forge
dbus                      1.13.6               h3818c69_3    conda-forge
debugpy                   1.8.13          py313h928ef07_0    conda-forge
decorator                 5.2.1              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
dolfiny                   0.9.0                    pypi_0    pypi
double-conversion         3.3.1                h286801f_0    conda-forge
exceptiongroup            1.2.2              pyhd8ed1ab_1    conda-forge
executing                 2.1.0              pyhd8ed1ab_1    conda-forge
expat                     2.7.0                h286801f_0    conda-forge
fenics-basix              0.9.0           py313hd7981f8_2    conda-forge
fenics-basix-nanobind-abi 0.2.1.18             h9b63b7c_2    conda-forge
fenics-dolfinx            0.9.0           py313h7880e45_111    conda-forge
fenics-ffcx               0.9.0              pyh2e48890_0    conda-forge
fenics-libbasix           0.9.0                hf7ae0cd_2    conda-forge
fenics-libdolfinx         0.9.0           py313h113a825_111    conda-forge
fenics-ufcx               0.9.0                hb7f7608_0    conda-forge
fenics-ufl                2024.2.0           pyhd8ed1ab_1    conda-forge
ffmpeg                    7.1.1           gpl_h583251a_104    conda-forge
fftw                      3.3.10          mpi_openmpi_h260600c_10    conda-forge
fltk                      1.3.10               h46aaf7c_0    conda-forge
fmt                       11.1.4               h440487c_1    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_3    conda-forge
fontconfig                2.15.0               h1383a14_1    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.57.0          py313ha9b7d5b_0    conda-forge
fqdn                      1.5.1              pyhd8ed1ab_1    conda-forge
freeimage                 3.18.0              h2e169f6_22    conda-forge
freetype                  2.13.3               h1d14073_0    conda-forge
fribidi                   1.0.10               h27ca646_0    conda-forge
frozenlist                1.5.0           py313ha9b7d5b_1    conda-forge
gdk-pixbuf                2.42.12              h7ddc832_0    conda-forge
gmp                       6.3.0                h7bae524_2    conda-forge
gmsh                      4.13.1               h88a6c1f_1    conda-forge
graphite2                 1.3.13            hebf3989_1003    conda-forge
h11                       0.14.0             pyhd8ed1ab_1    conda-forge
h2                        4.2.0              pyhd8ed1ab_0    conda-forge
h5py                      3.13.0          mpi_openmpi_py313hd9536a5_0    conda-forge
harfbuzz                  11.0.1               h371b746_0    conda-forge
hdf4                      4.2.15               h2ee6834_7    conda-forge
hdf5                      1.14.3          mpi_openmpi_h91eef8b_9    conda-forge
hpack                     4.1.0              pyhd8ed1ab_0    conda-forge
httpcore                  1.0.7              pyh29332c3_1    conda-forge
httpx                     0.28.1             pyhd8ed1ab_0    conda-forge
hyperframe                6.1.0              pyhd8ed1ab_0    conda-forge
hypre                     2.32.0          mpi_openmpi_h19a00c9_1    conda-forge
icu                       75.1                 hfee45f7_0    conda-forge
idna                      3.10               pyhd8ed1ab_1    conda-forge
imageio                   2.37.0             pyhfb79c49_0    conda-forge
imageio-ffmpeg            0.6.0              pyhd8ed1ab_0    conda-forge
imath                     3.1.12               h025cafa_0    conda-forge
importlib-metadata        8.6.1              pyha770c72_0    conda-forge
importlib_resources       6.5.2              pyhd8ed1ab_0    conda-forge
iniconfig                 2.0.0              pyhd8ed1ab_1    conda-forge
ipykernel                 6.29.5             pyh57ce528_0    conda-forge
ipympl                    0.9.7              pyhd8ed1ab_1    conda-forge
ipython                   9.1.0              pyhfb0248b_0    conda-forge
ipython_pygments_lexers   1.1.1              pyhd8ed1ab_0    conda-forge
ipywidgets                8.1.5              pyhd8ed1ab_1    conda-forge
isoduration               20.11.0            pyhd8ed1ab_1    conda-forge
jedi                      0.19.2             pyhd8ed1ab_1    conda-forge
jinja2                    3.1.6              pyhd8ed1ab_0    conda-forge
json5                     0.12.0             pyhd8ed1ab_0    conda-forge
jsoncpp                   1.9.6                h726d253_1    conda-forge
jsonpointer               3.0.0           py313h8f79df9_1    conda-forge
jsonschema                4.23.0             pyhd8ed1ab_1    conda-forge
jsonschema-specifications 2024.10.1          pyhd8ed1ab_1    conda-forge
jsonschema-with-format-nongpl 4.23.0               hd8ed1ab_1    conda-forge
jupyter                   1.1.1              pyhd8ed1ab_1    conda-forge
jupyter-lsp               2.2.5              pyhd8ed1ab_1    conda-forge
jupyter_client            8.6.3              pyhd8ed1ab_1    conda-forge
jupyter_console           6.6.3              pyhd8ed1ab_1    conda-forge
jupyter_core              5.7.2              pyh31011fe_1    conda-forge
jupyter_events            0.12.0             pyh29332c3_0    conda-forge
jupyter_server            2.15.0             pyhd8ed1ab_0    conda-forge
jupyter_server_terminals  0.5.3              pyhd8ed1ab_1    conda-forge
jupyterlab                4.3.6              pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.3.0              pyhd8ed1ab_2    conda-forge
jupyterlab_server         2.27.3             pyhd8ed1ab_1    conda-forge
jupyterlab_widgets        3.0.13             pyhd8ed1ab_1    conda-forge
jxrlib                    1.1                  h93a5062_3    conda-forge
kahip                     3.18            py313hbe5273b_0    conda-forge
kiwisolver                1.4.7           py313hf9c7212_0    conda-forge
krb5                      1.21.3               h237132a_0    conda-forge
lame                      3.100             h1a8c8d9_1003    conda-forge
lcms2                     2.17                 h7eeda09_0    conda-forge
ld64_osx-arm64            951.9                hb6b49e2_6    conda-forge
lerc                      4.0.0                h9a09cb3_0    conda-forge
libabseil                 20250127.1      cxx17_h07bc746_0    conda-forge
libadios2                 2.10.2          mpi_openmpi_h374d91b_5    conda-forge
libaec                    1.1.3                hebf3989_0    conda-forge
libamd                    3.3.3           h5087772_7100102    conda-forge
libass                    0.17.3               h68e5b86_2    conda-forge
libblas                   3.9.0           31_h10e41b3_openblas    conda-forge
libboost                  1.86.0               hc9fb7c5_3    conda-forge
libboost-devel            1.86.0               hf450f58_3    conda-forge
libboost-headers          1.86.0               hce30654_3    conda-forge
libbrotlicommon           1.1.0                hd74edd7_2    conda-forge
libbrotlidec              1.1.0                hd74edd7_2    conda-forge
libbrotlienc              1.1.0                hd74edd7_2    conda-forge
libbtf                    2.3.2           h99b4a89_7100102    conda-forge
libcamd                   3.3.3           h99b4a89_7100102    conda-forge
libcblas                  3.9.0           31_hb3479ef_openblas    conda-forge
libccolamd                3.3.4           h99b4a89_7100102    conda-forge
libcholmod                5.3.1           hbba04d7_7100102    conda-forge
libclang-cpp18.1          18.1.8          default_hf90f093_9    conda-forge
libclang13                20.1.2          default_h81d93ff_0    conda-forge
libcolamd                 3.3.4           h99b4a89_7100102    conda-forge
libcurl                   8.13.0               h73640d1_0    conda-forge
libcxx                    20.1.2               ha82da77_0    conda-forge
libcxx-devel              18.1.8               h6dc3340_8    conda-forge
libdeflate                1.23                 hec38601_0    conda-forge
libedit                   3.1.20250104    pl5321hafb1f1b_0    conda-forge
libev                     4.33                 h93a5062_2    conda-forge
libevent                  2.1.12               h2757513_1    conda-forge
libexpat                  2.7.0                h286801f_0    conda-forge
libfabric                 2.1.0                hce30654_0    conda-forge
libfabric1                2.1.0                h5505292_0    conda-forge
libffi                    3.4.6                h1da3d7d_1    conda-forge
libgfortran               14.2.0             heb5dd2a_105    conda-forge
libgfortran5              14.2.0             h2c44a93_105    conda-forge
libglib                   2.84.0               hdff4504_0    conda-forge
libhwloc                  2.11.2          default_hbce5d74_1001    conda-forge
libiconv                  1.18                 hfe07756_1    conda-forge
libintl                   0.23.1               h493aca8_0    conda-forge
libjpeg-turbo             3.0.0                hb547adb_1    conda-forge
libklu                    2.3.5           h4370aa4_7100102    conda-forge
liblapack                 3.9.0           31_hc9a63f6_openblas    conda-forge
libllvm18                 18.1.8               hc4b4ae8_3    conda-forge
libllvm20                 20.1.2               hc4b4ae8_0    conda-forge
liblzma                   5.8.1                h39f12f2_0    conda-forge
libmpdec                  4.0.0                h99b78c6_0    conda-forge
libnetcdf                 4.9.2           nompi_h610d594_116    conda-forge
libnghttp2                1.64.0               h6d7220d_0    conda-forge
libntlm                   1.8                  h5505292_0    conda-forge
libogg                    1.3.5                h99b78c6_0    conda-forge
libopenblas               0.3.29          openmp_hf332438_0    conda-forge
libopenvino               2025.0.0             h3f17238_3    conda-forge
libopenvino-arm-cpu-plugin 2025.0.0             h3f17238_3    conda-forge
libopenvino-auto-batch-plugin 2025.0.0             h7f72211_3    conda-forge
libopenvino-auto-plugin   2025.0.0             h7f72211_3    conda-forge
libopenvino-hetero-plugin 2025.0.0             h718ad69_3    conda-forge
libopenvino-ir-frontend   2025.0.0             h718ad69_3    conda-forge
libopenvino-onnx-frontend 2025.0.0             h1ae5b81_3    conda-forge
libopenvino-paddle-frontend 2025.0.0             h1ae5b81_3    conda-forge
libopenvino-pytorch-frontend 2025.0.0             h286801f_3    conda-forge
libopenvino-tensorflow-frontend 2025.0.0             heb6e3e1_3    conda-forge
libopenvino-tensorflow-lite-frontend 2025.0.0             h286801f_3    conda-forge
libopus                   1.4                  h48c0fde_0    conda-forge
libpmix                   5.0.7                h6500a5a_0    conda-forge
libpng                    1.6.47               h3783ad8_0    conda-forge
libpq                     17.4                 h6896619_1    conda-forge
libprotobuf               5.29.3               hccd9074_0    conda-forge
libptscotch               7.0.6                hcb9bb0f_1    conda-forge
libraw                    0.21.3               hee66ff5_0    conda-forge
librsvg                   2.58.4               h266df6f_3    conda-forge
libscotch                 7.0.6                he56f69b_1    conda-forge
libsodium                 1.0.20               h99b78c6_0    conda-forge
libspqr                   4.3.4           h775d698_7100102    conda-forge
libsqlite                 3.49.1               h3f77e49_2    conda-forge
libssh2                   1.11.1               h9cc3647_0    conda-forge
libsuitesparseconfig      7.10.1          h4a8fc20_7100102    conda-forge
libtheora                 1.1.1             h99b78c6_1006    conda-forge
libtiff                   4.7.0                h551f018_3    conda-forge
libumfpack                6.3.5           h7c2c975_7100102    conda-forge
libusb                    1.0.28               h5505292_0    conda-forge
libvorbis                 1.3.7                h9f76cd9_0    conda-forge
libvpx                    1.14.1               h7bae524_0    conda-forge
libwebp-base              1.5.0                h2471fea_0    conda-forge
libxcb                    1.17.0               hdb1d25a_0    conda-forge
libxml2                   2.13.7               h52572c6_1    conda-forge
libzip                    1.11.2               h1336266_0    conda-forge
libzlib                   1.3.1                h8359307_2    conda-forge
llvm-openmp               20.1.2               hdb05f8b_0    conda-forge
llvm-tools                18.1.8               hc4b4ae8_3    conda-forge
llvm-tools-18             18.1.8               hc4b4ae8_3    conda-forge
llvmlite                  0.44.0          py313hd06b435_1    conda-forge
loguru                    0.7.2           py313h8f79df9_2    conda-forge
lz4-c                     1.10.0               h286801f_1    conda-forge
markupsafe                3.0.2           py313ha9b7d5b_1    conda-forge
matplotlib-base           3.10.1          py313haaf02c0_0    conda-forge
matplotlib-inline         0.1.7              pyhd8ed1ab_1    conda-forge
metis                     5.1.0             h15f6cfe_1007    conda-forge
mistune                   3.1.3              pyh29332c3_0    conda-forge
mpi                       1.0                     openmpi    conda-forge
mpi4py                    4.0.3           py313h7222c6d_0    conda-forge
msgpack-python            1.1.0           py313hf9c7212_0    conda-forge
multidict                 6.3.2           py313h6347b5a_0    conda-forge
mumps-include             5.7.3                he67b4ff_9    conda-forge
mumps-mpi                 5.7.3                ha27d91b_9    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mysql-common              9.2.0                hd7719f6_0    conda-forge
mysql-libs                9.2.0                ha8be5b7_0    conda-forge
nbclient                  0.10.2             pyhd8ed1ab_0    conda-forge
nbconvert-core            7.16.6             pyh29332c3_0    conda-forge
nbformat                  5.10.4             pyhd8ed1ab_1    conda-forge
ncurses                   6.5                  h5e97a16_3    conda-forge
nest-asyncio              1.6.0              pyhd8ed1ab_1    conda-forge
netcdf4                   1.7.2                    pypi_0    pypi
nlohmann_json             3.11.3               h00cdb27_1    conda-forge
notebook                  7.3.3              pyhd8ed1ab_0    conda-forge
notebook-shim             0.2.4              pyhd8ed1ab_1    conda-forge
numba                     0.61.2          py313h8aea8d6_0    conda-forge
numpy                     2.2.4           py313h41a2e72_0    conda-forge
occt                      7.8.1           novtk_hbec2736_103    conda-forge
openexr                   3.3.3                h10b4c9a_0    conda-forge
openh264                  2.6.0                hb5b2745_0    conda-forge
openjpeg                  2.5.3                h8a3d83b_0    conda-forge
openldap                  2.6.9                hbe55e7a_0    conda-forge
openmpi                   5.0.7              h31ce4ef_100    conda-forge
openssl                   3.5.0                h81ee809_1    conda-forge
overrides                 7.7.0              pyhd8ed1ab_1    conda-forge
packaging                 24.2               pyhd8ed1ab_2    conda-forge
pandas                    2.2.3                    pypi_0    pypi
pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge
pango                     1.56.3               h5fd7515_1    conda-forge
parmetis                  4.0.3             he8458ae_1007    conda-forge
parso                     0.8.4              pyhd8ed1ab_1    conda-forge
pcre2                     10.44                h297a79d_2    conda-forge
petsc                     3.22.3          real_h824c086_103    conda-forge
petsc4py                  3.22.4          np2py313h03d4cd5_0    conda-forge
pexpect                   4.9.0              pyhd8ed1ab_1    conda-forge
pickleshare               0.7.5           pyhd8ed1ab_1004    conda-forge
pillow                    11.1.0          py313hb37fac4_0    conda-forge
pip                       25.0.1             pyh145f28c_0    conda-forge
pixman                    0.44.2               h2f9eb0b_0    conda-forge
pkg-config                0.29.2            hde07d2e_1009    conda-forge
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_2    conda-forge
platformdirs              4.3.7              pyh29332c3_0    conda-forge
pluggy                    1.5.0              pyhd8ed1ab_1    conda-forge
pooch                     1.8.2              pyhd8ed1ab_1    conda-forge
proj                      9.6.0                h1318a7e_1    conda-forge
prometheus_client         0.21.1             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.50             pyha770c72_0    conda-forge
prompt_toolkit            3.0.50               hd8ed1ab_0    conda-forge
propcache                 0.2.1           py313ha9b7d5b_1    conda-forge
psutil                    7.0.0           py313h90d716c_0    conda-forge
pthread-stubs             0.4               hd74edd7_1002    conda-forge
ptyprocess                0.7.0              pyhd8ed1ab_1    conda-forge
pugixml                   1.15                 hd3d436d_0    conda-forge
pure_eval                 0.2.3              pyhd8ed1ab_1    conda-forge
pycparser                 2.22               pyh29332c3_1    conda-forge
pygments                  2.19.1             pyhd8ed1ab_0    conda-forge
pymobimp                  0.1                      pypi_0    pypi
pyobjc-core               11.0            py313hb6afeec_0    conda-forge
pyobjc-framework-cocoa    11.0            py313hb6afeec_0    conda-forge
pyparsing                 3.2.3              pyhd8ed1ab_1    conda-forge
pysocks                   1.7.1              pyha55dd90_7    conda-forge
pytest                    8.3.5              pyhd8ed1ab_0    conda-forge
pytest-cov                6.1.1              pyhd8ed1ab_0    conda-forge
python                    3.13.2          h81fe080_101_cp313    conda-forge
python-dateutil           2.9.0.post0        pyhff2d567_1    conda-forge
python-fastjsonschema     2.21.1             pyhd8ed1ab_0    conda-forge
python-gmsh               4.13.1               h57928b3_1    conda-forge
python-json-logger        2.0.7              pyhd8ed1ab_0    conda-forge
python_abi                3.13                    6_cp313    conda-forge
pytz                      2025.2             pyhd8ed1ab_0    conda-forge
pyvista                   0.44.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.2           py313ha9b7d5b_2    conda-forge
pyzmq                     26.4.0          py313he6960b1_0    conda-forge
qhull                     2020.2               h420ef59_5    conda-forge
qt6-main                  6.8.3                hca13b62_2    conda-forge
rapidjson                 1.1.0.post20240409      ha1acc90_2    conda-forge
readline                  8.2                  h1d1bf99_2    conda-forge
referencing               0.36.2             pyh29332c3_0    conda-forge
requests                  2.32.3             pyhd8ed1ab_1    conda-forge
rfc3339-validator         0.1.4              pyhd8ed1ab_1    conda-forge
rfc3986-validator         0.1.1              pyh9f0ad1d_0    conda-forge
rpds-py                   0.24.0          py313hb5fa170_0    conda-forge
scalapack                 2.2.0                ha79e478_4    conda-forge
scifem                    0.5.0           py313hfd1d6c2_0    conda-forge
scipy                     1.15.2          py313h9a24e0a_0    conda-forge
scooby                    0.10.0             pyhd8ed1ab_1    conda-forge
sdl2                      2.32.54              h994913f_0    conda-forge
sdl3                      3.2.10               he842692_0    conda-forge
send2trash                1.8.3              pyh31c8845_1    conda-forge
setuptools                78.1.0             pyhff2d567_0    conda-forge
sharpie                   0.0.1                    pypi_0    pypi
sigtool                   0.1.3                h44b9a77_0    conda-forge
six                       1.17.0             pyhd8ed1ab_0    conda-forge
slepc                     3.22.2          real_h6dfd3a0_300    conda-forge
slepc4py                  3.22.2          py313h12d5f4c_0    conda-forge
snappy                    1.2.1                h98b9ce2_1    conda-forge
sniffio                   1.3.1              pyhd8ed1ab_1    conda-forge
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
spdlog                    1.15.2               h008cadb_0    conda-forge
sqlite                    3.49.1               hd7222ec_2    conda-forge
stack_data                0.6.3              pyhd8ed1ab_1    conda-forge
superlu                   7.0.0                h742a510_1    conda-forge
superlu_dist              9.1.0                h6ba37e7_0    conda-forge
svt-av1                   3.0.2                h8ab69cd_0    conda-forge
tapi                      1300.6.5             h03f4b80_0    conda-forge
tbb                       2022.1.0             h9541205_0    conda-forge
terminado                 0.18.1             pyh31c8845_0    conda-forge
tinycss2                  1.4.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.13               h5083fa2_1    conda-forge
toml                      0.10.2             pyhd8ed1ab_1    conda-forge
tomli                     2.2.1              pyhd8ed1ab_1    conda-forge
tornado                   6.4.2           py313h90d716c_0    conda-forge
tqdm                      4.67.1             pyhd8ed1ab_1    conda-forge
traitlets                 5.14.3             pyhd8ed1ab_1    conda-forge
types-python-dateutil     2.9.0.20241206     pyhd8ed1ab_0    conda-forge
typing-extensions         4.13.1               hf5ce1d7_0    conda-forge
typing_extensions         4.13.1             pyh29332c3_0    conda-forge
typing_utils              0.1.0              pyhd8ed1ab_1    conda-forge
tzdata                    2025.2                   pypi_0    pypi
uri-template              1.3.0              pyhd8ed1ab_1    conda-forge
urllib3                   2.3.0              pyhd8ed1ab_0    conda-forge
utfcpp                    4.0.6                h54c0426_0    conda-forge
vtk                       9.4.1                hff47c66_2    conda-forge
vtk-base                  9.4.1           py313h4a1e8f4_2    conda-forge
vtk-io-ffmpeg             9.4.1                h3d0ef82_2    conda-forge
wcwidth                   0.2.13             pyhd8ed1ab_1    conda-forge
webcolors                 24.11.1            pyhd8ed1ab_0    conda-forge
webencodings              0.5.1              pyhd8ed1ab_3    conda-forge
websocket-client          1.8.0              pyhd8ed1ab_1    conda-forge
widgetsnbextension        4.0.13             pyhd8ed1ab_1    conda-forge
wslink                    2.3.3              pyhd8ed1ab_0    conda-forge
x264                      1!164.3095           h57fd34a_2    conda-forge
x265                      3.5                  hbc6ce65_3    conda-forge
xarray                    2025.4.0                 pypi_0    pypi
xorg-libice               1.1.2                h5505292_0    conda-forge
xorg-libsm                1.2.6                h5505292_0    conda-forge
xorg-libx11               1.8.12               h6a5fb8c_0    conda-forge
xorg-libxau               1.0.12               h5505292_0    conda-forge
xorg-libxdmcp             1.1.5                hd74edd7_0    conda-forge
xorg-libxext              1.3.6                hd74edd7_0    conda-forge
xorg-libxfixes            6.0.1                hd74edd7_0    conda-forge
xorg-libxrender           0.9.12               h5505292_0    conda-forge
yaml                      0.2.5                h3422bc3_2    conda-forge
yarl                      1.18.3          py313ha9b7d5b_1    conda-forge
zeromq                    4.3.5                hc1bb282_7    conda-forge
zfp                       1.0.1                h1c5d8ea_2    conda-forge
zipp                      3.21.0             pyhd8ed1ab_1    conda-forge
zlib                      1.3.1                h8359307_2    conda-forge
zlib-ng                   2.2.4                h13dfb9a_0    conda-forge
zstandard                 0.23.0          py313h90d716c_1    conda-forge
zstd                      1.5.7                h6491c7d_2    conda-forge

This was resolved with: Ignore none subdomain data in form compilation subdomain checker by jorgensd · Pull Request #3541 · FEniCS/dolfinx · GitHub

To work around this on 0.9.0 you could modify your code slightly:

import dolfinx as dfx

from mpi4py.MPI import COMM_WORLD as comm

import numpy as np

import ufl


def create_boundary_measure(mesh, marker):
    tdim = mesh.topology.dim
    fdim = tdim - 1

    facets = dfx.mesh.locate_entities(mesh, fdim, marker)

    facet_markers = np.full_like(facets, 42)

    facet_tag = dfx.mesh.meshtags(mesh, fdim, facets, facet_markers)

    ds = ufl.Measure("ds", domain=mesh, subdomain_data=facet_tag)
    return ds


mesh = dfx.mesh.create_rectangle(comm, ((0.0, 0.0), (1, 42)), (128, 128))

V = dfx.fem.functionspace(mesh, "P1")
V0 = dfx.fem.functionspace(mesh, "P2")

v = ufl.TestFunction(V)

M = dfx.fem.Function(V)
M0 = dfx.fem.Function(V0)

vel = ufl.as_vector([dfx.fem.Function(V), dfx.fem.Function(V)])

n = ufl.FacetNormal(mesh)

un_out = (ufl.dot(vel, n) + abs(ufl.dot(vel, n))) / 2.0  # type: ignore

form = -ufl.dot(ufl.nabla_grad(v), M * vel) * ufl.dx  # type: ignore

ds = create_boundary_measure(mesh, lambda x: np.isclose(x[0], 1))
ds_outer = ds(42)
form += (
    ufl.dot(v, un_out * M) * ds
)  # <- Apparently this term causes the issue in conjunction with.

form += v * (vel[1] * M0).dx(1) * ufl.dx


M_outer = dfx.fem.Constant(mesh, 0.5 * 1**2)

un_in = (ufl.dot(vel, n) - abs(ufl.dot(vel, n))) / 2.0  # type: ignore
form += ufl.inner(v, un_in * M_outer) * ds_outer  # <- ... this term.

dfx.fem.form(form)

Note that the key is that the same instantiation of the ufl.Measure is used for both definitions.

Yes, that is a workaround. Thanks a lot for the help!