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

**URL:** https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714
**Category:** Development
**Tags:** vtk
**Created:** [August 18, 2023, 1:39pm UTC](https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714 "2023-08-18T13:39:08Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [August 18, 2023, 1:39pm UTC](https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714/1 "2023-08-18T13:39:08Z")

</div>

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

```auto
(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:

```python
# 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](https://gitlab.kitware.com/paraview/paraview/-/issues/22267)

---

<div class="post-metadata">

### Author: ![berkgeveci](https://discourse.paraview.org/user_avatar/discourse.paraview.org/berkgeveci/32/1464_2.png) [@berkgeveci](https://discourse.paraview.org/u/berkgeveci)
#### Post date: [August 19, 2023, 8:24pm UTC](https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714/2 "2023-08-19T20:24:22Z")

</div>

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:

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

```

---

<div class="post-metadata">

### Author: ![bastian](https://discourse.paraview.org/user_avatar/discourse.paraview.org/bastian/32/7513_2.png) [@bastian](https://discourse.paraview.org/u/bastian)
#### Post date: [August 22, 2023, 10:42am UTC](https://discourse.paraview.org/t/vtkpvpostfilterexecutive-0x1e3ecaa0-the-update-extent-specified-in-the-information-for-output-port-0-on-algorithm-vtkpvpostfilter-0x1f196a90/12714/4 "2023-08-22T10:42:27Z")

</div>

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.

```python
# 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

```auto
( 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.

```
