savon
savon copied to clipboard
Savon::SOAPFault Error when using wasabi 3.6.1
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
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.
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. 😅
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.
It seems like wasabi 3.6.1 is unnecessarily nesting things. To go along with @dantelljohann original post
Wasabi 3.6.1
Wasabi 3.5.0
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 Thanks for digging more! Any PRs to try and amend the nesting issues are welcome.
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.
Not stale
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+?
I can confirm it works again with a current version of wasabi 👍