External data source object cannot be "set" in Postmaster filter

Infos:

  • Used Zammad version: 6.3.1-1730190484.5c5b5fba.jammy
  • Used Zammad installation type: package
  • Operating system: Ubuntu 22.04
  • Browser + version: Chrome 131.0.6778.86

Expected behavior:

  • Perform action on Postmaster filter should allow to set external data source object value.
    Works fine with triggers and schedulers.

Actual behavior:

  • When searching for a external data source object value in the Postmaster filter configuration, a server 500 error appears in the browser. “undefined method `fetch_undefined?’ for #<ExternalDataSourcePolicy:0x00[…]”

Production.log indicates the following:
I, [2024-11-26T02:07:27.624988#58269-254966600] INFO – : Started GET “/api/v1/external_data_source/undefined/perform::x-zammad-ticket-external_test::value?query=100&limit=40&=1732585742870" for [IP_ADDRESS] at 2024-11-26 02:07:27 +0000
I, [2024-11-26T02:07:27.636703#58269-254966600] INFO – : Processing by ExternalDataSourceController#fetch as JSON
I, [2024-11-26T02:07:27.636764#58269-254966600] INFO – : Parameters: {“query”=>“100”, “limit”=>“40”, "
”=>“1732585742870”, “object”=>“undefined”, “attribute”=>“perform::x-zammad-ticket-external_test::value”}
E, [2024-11-26T02:07:27.662343#58269-254966600] ERROR – : undefined method fetch_undefined?' for #<ExternalDataSourcePolicy:0x00007fdfb14dc2c0 @user=#<User id: [HIDDEN OUTPUT FOR USER]>, @record="undefined"> (NoMethodError) app/policies/external_data_source_policy.rb:5:in fetch?’
app/policies/controllers/external_data_source_controller_policy.rb:9:in fetch?' app/controllers/application_controller/authorizes.rb:10:in authorize!’
app/controllers/application_controller/authenticates.rb:143:in `authenticate_and_authorize!’
I, [2024-11-26T02:07:27.674019#58269-254966600] INFO – : Completed 500 Internal Server Error in 37ms (Views: 0.2ms | ActiveRecord: 12.2ms | Allocations: 7415)

Steps to reproduce the behavior:

  • Create external data source object named “Entente”
    Create new postmaster filter with any match rule
    Perform action: Select “Entente” and type any character in the search field
    Error popup appears immediately

Thanks!

Hi @laurent. Please check GitHub · Where software is built and create a new report over there if there is none. Thanks!

Hello @fliebe92 , thanks for the advice, the bug was quickly verified and fixed through #5425. Nonetheless, after upgrading package to the commit including the fix - d34b4b3, I confirm I can see the updated code in the package files, but the bug is still present. Am I missing anything?

Maybe you need to make sure that your browser is using the updated files as well by just reloading your browser tab. Not sure though, I verified the fix yesterday afternoon as well in my instance, it works fine here.

Does it happen for existing filters or for new ones or both?

It was a browser issue indeed. Restarting the browser cleared the issue. Thank you!