I found a problem with posting transfer receipts for lines with 2 item tracking records (lots) that have different expiration dates. During the whse journal line splitting the 2nd lot ends up getting the expiration date of the first, which causes an error. A hotfix was not available.
Making the code change shown below to Codeunit 6500.WhseJnlSplitLine() solved my issue. Enjoy.
IF ToTransfer THEN BEGIN
TempWhseJnlLine2."Serial No." := "New Serial No.";
TempWhseJnlLine2."Lot No." := "New Lot No.";
TempWhseJnlLine2."Expiration Date" := "Expiration Date"; //<
IF "New Expiration Date" <> 0D THEN
TempWhseJnlLine2."Expiration Date" := "New Expiration Date"