vtkPVPostFilterExecutive (0x1e3ecaa0): The update extent specified in the information for output port 0 on algorithm vtkPVPostFilter (0x1f196a90)

When creating a programmable filter from two inputs with different extents I get the following, very annoying error message.

(5977.475s) [paraview        ]vtkStreamingDemandDrive:878    ERR| vtkPVPostFilterExecutive (0x1b7cbb80): The update extent specified in the information for output port 0 on algorithm vtkPVPostFilter(0x7f6488011cf0) is 0 2304 0 127 0 202, which is outside the whole extent 0 0 0 127 0 202.

Within the programmable filter I do take care of the fact that the discretizations of the two inputs don’t match and am well aware of the fact that the discretization of the output corresponds to that of the first input.

Here is a very basic example:

# trace generated using paraview version 5.11.1
#import paraview
#paraview.compatibility.major = 5
#paraview.compatibility.minor = 11

from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()

renderView1 = GetActiveViewOrCreate('RenderView')

wavelet1 = Wavelet(registrationName='Wavelet1')
wavelet1.WholeExtent = [-10, 10, -10, 10, -10, 10]
wavelet1Display = Show(wavelet1, renderView1, 'UniformGridRepresentation')

wavelet2 = Wavelet(registrationName='Wavelet2')
wavelet2.WholeExtent = [-10, 10, -10, 10, 0, 0]
wavelet2Display = Show(wavelet2, renderView1, 'UniformGridRepresentation')

programmableFilter1 = ProgrammableFilter(registrationName='ProgrammableFilter1', Input=[wavelet1, wavelet2])
programmableFilter1Display = Show(programmableFilter1, renderView1, 'UniformGridRepresentation')

renderView1.Update()

In actual applications, the data produced by the programmable filter is fine despite the nonsense error message.
However, I do observe spurious color bars popping up in batch-renderings, and I suspect this to be a weird consequence of this issue.

I went ahead and opened an issue:
https://gitlab.kitware.com/paraview/paraview/-/issues/22267

As cryptic as this is, this is not a bug. By default, VTK filters that take multiple data objects in an input request the same extent, that of the first input’s WHOLE_EXTENT, from all input connections. Maybe not the best choice, but it is by design. To fix the issue in the script, you need to add the following to the RequestUpdateExtent script of your programmable filter:

SDDP = vtk.vtkStreamingDemandDrivenPipeline
inInfo = self.GetInputInformation(0,1)
extent = inInfo.Get(SDDP.WHOLE_EXTENT())
inInfo.Set(SDDP.UPDATE_EXTENT(), extent, 6)

Thanks Berk,

however, this resolves the issue only for the MWE above where there are two inputs.
When configuring the ProgrammableFilter with three and more inputs the message appears again.

# trace generated using paraview version 5.11.1
#import paraview
#paraview.compatibility.major = 5
#paraview.compatibility.minor = 11

from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()

renderView1 = GetActiveViewOrCreate('RenderView')

wavelet1 = Wavelet(registrationName='Wavelet1')
wavelet1.WholeExtent = [-10, 10, -10, 10, -10, 10]
wavelet1Display = Show(wavelet1, renderView1, 'UniformGridRepresentation')

wavelet2 = Wavelet(registrationName='Wavelet2')
wavelet2.WholeExtent = [-10, 10, -10, 10, -10, 10]
wavelet2Display = Show(wavelet2, renderView1, 'UniformGridRepresentation')

wavelet3 = Wavelet(registrationName='Wavelet3')
wavelet3.WholeExtent = [-10, 10, -10, 10, 0, 0]
wavelet3Display = Show(wavelet3, renderView1, 'UniformGridRepresentation')

programmableFilter1 = ProgrammableFilter(registrationName='ProgrammableFilter1', Input=[wavelet1, wavelet2, wavelet3])
programmableFilter1.RequestUpdateExtentScript = """# https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714/2?u=bastian
SDDP = vtk.vtkStreamingDemandDrivenPipeline
inInfo = self.GetInputInformation(0,1)
extent = inInfo.Get(SDDP.WHOLE_EXTENT())
inInfo.Set(SDDP.UPDATE_EXTENT(), extent, 6)"""
programmableFilter1Display = Show(programmableFilter1, renderView1, 'UniformGridRepresentation')

renderView1.Update()

Produces

(   4.786s) [paraview        ]vtkStreamingDemandDrive:874    ERR| vtkPVPostFilterExecutive (0x1b820210): The update extent specified in the information for output port 0 on algorithm vtkPVPostFilter (0x1af977d0) is -10 10 -10 10 -10 10, which is outside the whole extent -10 10 -10 10 0 0.