[Implicit Cordapp Upgrades] It is possible to create an obligation from node with new contract to node with old contract

Description

Steps to reproduce:

1) Bootstrap network (Notary, PartyA, PartyB, PartyC). Node config sample attached.
2) Upgrade PartyA and PartyB contracts to version 2 and workflows to version 3.
3) Create obligation from PartyC to PartyB (old to new contract)
4) Create obligation from PartyB to PartyC (new to old contract)

Expected result:
On step 3 obligation is created, PartyB has state where new field = null

On step 4 obligation is not created according to https://github.com/corda/samples/tree/4.3-RC01/implicit-cordapp-upgrades

Actual result:
On step 3 everything goes as expected

On step 4 obligation is created w/o errors.

PartyB has state

PartyC has state

Assignee

Jonathan Locke

Reporter

Dmitry Toropov

Labels

None

Sprint

None

Epic Link

None

Priority

Medium

Engineering Teams

Kernel

Fix versions

Affects versions

Ported to...

None

Story Points / Dev Days

None

Build cut

None

Feature Team

Kernel Group
Configure