Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NewtonSoft.Json 10.0.3 needed, but getting 11.0.0.* - Breaking Durables #347

Closed
pragnagopa opened this issue Jun 18, 2018 · 4 comments
Closed

Comments

@pragnagopa
Copy link
Member

From @GregLevenhagen on June 13, 2018 20:59

Yesterday our Durables started producing 500s because of the following NewtonSoft.Json reference on the assembly version. We are not including nor using any NewtonSoft.Json within our own code.

Investigative information

  • Timestamp: 2018-06-13T20:50:33.457
  • Function App version (1.0 or 2.0-beta): 2.0.11857-alpha
  • Invocation ID: 71dd8324-4e48-485d-bad1-08078082a159, fbbf76fb-448d-4d2b-84e5-ed17da5d587d
  • Region: Central US

Repro steps

Run any Durable Function

Expected behavior

For the Durable Function to correctly use NewtonSoft.Json 10.0.3

Starting Host (HostId=*-test-funcapp-tripgen, InstanceId=d5048ba1-7a5b-46c1-a22b-e29bb61b9ec2, Version=2.0.11776.0, ProcessId=5340, AppDomainId=1, Debug=False, ConsecutiveErrors=0, StartupCount=1, FunctionsExtensionVersion=beta)

Actual behavior

Exception while executing function: TripProcessingOrchestrator_HttpStart Could not load type 'Newtonsoft.Json.SerializationBinder' from assembly 'Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'.

From the Portal Log window

2018-06-13T20:50:33.457 [Error] System.Private.CoreLib: Exception while executing function: TripProcessingOrchestrator_HttpStart. DurableTask.Core: Could not load type 'Newtonsoft.Json.SerializationBinder' from assembly 'Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'.
2018-06-13T20:50:33.509 [Error] Executed '*ProcessingOrchestrator_HttpStart' (Failed, Id=fbbf76fb-448d-4d2b-84e5-ed17da5d587d)

Known workarounds

No known work-arounds

We've tried manually including the 10.0.3 version of NewtonSoft.Json package.
We've tried manually setting the FUNCTIONS_EXTENSION_VERSION to a previous version, but all combinations of the value for previous versions fail. It detects the custom version, but says it's not valid. What is the format for the value to specify an exact version? I haven't found documentation other than (~1 or beta).

Related information

  • Programming language used - C#

Copied from original issue: Azure/azure-functions-host#2998

@pragnagopa
Copy link
Member Author

From @GregLevenhagen on June 13, 2018 21:9

Workaround by setting the following line in the Application Settings
FUNCTIONS_EXTENSION_VERSION ~2.0.11776
will show

Runtime version loaded from Application Settings: ~2.0.11776
Warning Unsupported Runtime Version Your custom runtime version is not supported. As a result 2.0.11776.0 runtime is being used.

but works for now.

@kashimiz
Copy link
Contributor

kashimiz commented Jun 18, 2018

Thanks for this wonderfully thorough issue, @GregLevenhagen! 😄 this is a known issue with the newest functions host release and we're tracking it here: #342 (comment)

Short version: There was a breaking change between Newtonsoft.Json v10 and v11. I've got a PR out to update our references to v11 but it requires updating some dependencies first. We're working on getting these out.

@pragnagopa
Copy link
Member Author

@kashimiz - @GregLevenhagen filed the original issue. I just moved it to right place :)

@cgillum cgillum added this to the v1.5.0 Feature Release milestone Jun 21, 2018
@cgillum
Copy link
Collaborator

cgillum commented Jun 21, 2018

This is fixed in the v1.5.0 release.

@cgillum cgillum closed this as completed Jun 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants