savon icon indicating copy to clipboard operation
savon copied to clipboard

Savon::SOAPFault Error when using wasabi 3.6.1

Open dantelljohann opened this issue 4 years ago • 7 comments

Bug report

Current behavior: We are currently using savon version 2.12.1 and tried to update wasabi to 3.6.1. When we did that our request that do:

      Savon.client do
        ...
      end.call

Throw the following error:

Savon::SOAPFault
(soap:Client) Message part handleInteractiveOrder was not recognized.  (Does it exist in service WSDL?)

Steps to reproduce current behavior: Ruby code that follows the pattern:

Savon.client do
        ...
      end.call

Expected behavior: Before updating wasabi to 3.6.1 we were on 3.5.0 and this error wasn't occurring. We would expect the same to happen with 3.6.1 since the dependency is listed as wasabi ~> 3.4

System information:

  • ruby version: 2.6.5p114
  • savon version: 2.12.0

dantelljohann avatar Sep 10 '20 17:09 dantelljohann

Here’s a minimal reproducing example that uses a public WSDL:

require 'savon'
wsdl = 'https://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl'
locals = {
  message: { listLatLon: '44.4437648,-121.1897322', product: 'time-series' },
}
Savon.client(wsdl: wsdl).call(:ndf_dgen_lat_lon_list, locals)

This runs without excepions on Savon 2.12.1 and Wasabi 3.5.0 but blows up on Savon 2.12.1 and Wasabi 3.6.1 with

Traceback (most recent call last):
	6: from tmp/savon_test.rb:7:in `<main>'
	5: from /home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/client.rb:36:in `call'
	4: from /home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/operation.rb:58:in `call'
	3: from /home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/operation.rb:72:in `create_response'
	2: from /home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/operation.rb:72:in `new'
	1: from /home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/response.rb:14:in `initialize'
/home/chastell/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/savon-2.12.1/lib/savon/response.rb:85:in `raise_soap_and_http_errors!': (SERVER) Point is not on an NDFD grid (Savon::SOAPFault)

Also cross-linking #936 here, as I believe it’s the same issue.

chastell avatar Nov 02 '20 12:11 chastell

My debugging led me to this commit in Wasabi, which added these lines to parser.rb and changed the Wasabi’s format, hope that helps. 😅

chastell avatar Nov 02 '20 13:11 chastell

Yep, I have the same problem. All of the sudden got errors with some automated calls and could lead it back to the Wasabi upgrade from 3.5.0 to 3.6.1. Pinned wasabi to 3.5.0 for now and everything works again.

zjeraar avatar Nov 20 '20 16:11 zjeraar

It seems like wasabi 3.6.1 is unnecessarily nesting things. To go along with @dantelljohann original post

Wasabi 3.6.1 image

Wasabi 3.5.0 image

So then this causes the tag namespacing code in savon to incorrectly omit the namespace (and then the receiving service throws a client error cause it doesn't know what you're talking about)

nijave avatar Dec 09 '20 21:12 nijave

@nijave Thanks for digging more! Any PRs to try and amend the nesting issues are welcome.

olleolleolle avatar Dec 10 '20 08:12 olleolleolle

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jan 08 '22 23:01 stale[bot]

Not stale

diesl avatar Jan 09 '22 10:01 diesl

This may have been a regression caused by https://github.com/savonrb/wasabi/pull/103 which was released in wasabi 3.7.0. Can you please reopen with additional information if this is still not working with wasabi 3.7+?

pcai avatar Oct 01 '22 05:10 pcai

I can confirm it works again with a current version of wasabi 👍

diesl avatar Dec 12 '22 15:12 diesl