Below a list of know bugs, issues, & other quirks* of BizTalk 2013 R2 (mainly CU3) and Visual Studio 2013 (update 4) , but I will update with fixes as the CUs come out or when I know about a new issue, so if you have another one I will add it (and link to it if you have a blog about it) if you let me know.

* My definitions for classifying these are
: Causes negative impact and no known work around or requires a lot of effort to work around.
Issue: Causes negative impact but has an easy or quick work around.
Missing: A feature that BizTalk doesn’t have that would make our life easier.
Quirk:  Something strange or unusual but does not cause a negative impact so far as known.


Microsoft BizTalk Mapper (Visual Studio)

Issue: The Mapper will change a link to attribute of the same name when it was going to the element.

Details: If you have an existing element in a schema mapped from to an Element, and you then add an attribute at the same level with the same name, the mapper will change the link to go to the attribute.
Work around: Add the link for the Element back after adding the attribute to the schema and check & correct the attribute link.
Note: The reverse applies as well, if you are coming from an Element and add an attribute of the same name, it will change the link.

Issue: The Use XSL Transform setting has no effect in Visual Studio

Details:  Changing the XSL Transform setting has no effect when you test the map in Visual Studio.  See BizTalk 2013 R2 CU2 & BizTalk 2016 – Use XSL Transform
Work around: Test the maps at run-time.

Quirk: How the Mapper displays items starting with underscore.

Details: If you have a schema where a Element, Attribute or Record that starts with a underscore, it shows in the mapper as ending with a underscore.
QuirkUnderscoreWork around: None
Note: No impact on functionality.

BizTalk (schema) Editor (Visual Studio)

Issue: Can’t set decimal precision for a decimal type in the schema editor

Details: There in no option in the Schema Editor to set how many decimal points you want for a decimal type.
Work around: Open it up with the XML Editor or text editor and add it manually. See Base Data Types and Restrictions in the Schema Editor
Note: This has been an issue since 2004, so a long standing issue that applies to earlier version of BizTalk/Visual Studio as well.

BizTalk Server Administration (Console)

Missing: HTTP Method and URL Mapping & SOAP Action too small

Details: The HTTP Method and URL Mapping in WCF-WebHttp or SOAP Action header in other WCF adapters in the Transport Properties dialogue windows are too smal and you can’t resize them.
See also Resizeable windows
Work around: Compose the settings elsewhere and past them in.


Issue: Redeployment of schema referenced by maps fails (Fixed in CU4?)

Details: Trying to re-deploy a schema that is referenced by a map on a port fails with the following database error.

Removal of the assembly failed. Make sure that all items in the assembly you are trying to remove fulfill the following conditions:
1. Pipelines, maps, and schemas are not being used by Send Ports or Receive Locations in the same or referenced application(s)
2. Roles have no enlisted parties
Database Error:
The DELETE statement conflicted with the REFERENCE constraint “bts_sendport_transform_foreign_transformid”. The conflict occurred in database “BizTalkMgmtDb”, table “dbo.bts_sendport_transform”, column ‘uidTransformGUID’.
The DELETE statement conflicted with the REFERENCE constraint “fk_bt_mapspec_bts_item”. The conflict occurred in database “BizTalkMgmtDb”, table “dbo.bt_MapSpec”, column ‘itemid’.The DELETE statement conflicted with the REFERENCE constraint “bts_sendport_transform_foreign_transformid”. The conflict occurred in database “BizTalkMgmtDb”, table “dbo.bts_sendport_transform”, column ‘uidTransformGUID‘.

Work Around: Remove the maps from the ports that reference the schema and add them back afterwords.
Fix: (supposedly) Deploy CU4, see FIX: Redeployment of schema referenced by maps fails after you install BizTalk Server kb 3167704 in CU4, however I just get a different error now sometimes. Still need to use the workaround in those cases.
Note: This was also fixed earlier in BizTalk 2010 and 2013 see kb 2908686

Issue: If you deploy a MSI without bindings it can revert to an older binding

Details: If you deploy a MSI without bindings and it does not contain bindings and you don’t apply bindings either automatically or manually as part of the deployment, it can sometimes end up with a previous state of the bindings.

Work Around: Delete all the files from the folder %APPDATA%\Microsoft\BizTalk Server\Deployment\BindingFiles\ before importing the MSI.

Issue: You can’t export the Tracking settings on Policies via bindings file

Details: If you export a bindings file it does not contain the tracking settings for a Policy and there doesn’t seem to be a way to automatically set them.
Note: Raised on StackOverflow How to import/export the tracking setting of a policy
Work Around: Manually set these after deployment


BizTalk Server Administration (Console)

Issue: Export Bindings is grayed out after importing bindings

Details: After deleting all artifacts, redeploying artifacts and then importing binding. Export Bindings is grayed out and unavailable in BizTalk Server Administration.  Refresh does not fix this.
Work around: Close and re-open or open a new BizTalk Server Administration Console

Issue: Restart is grayed out in BizTalk Server Administration

Details: If you have selected multiple hosts in the Host Instances and the last one you host you selected is an isolated host, either at the bottom of the list when selecting with Ctrl + A or Shift + Click, or alternatively the last added by Ctrl + Click, then Restart options is grayed out in the BizTalk Server Administration console
Work around: Either un-select the isolated hosts (Ctrl + Click) or sort the Host Instances so that the last host in the list is not a isolated one.

Missing: No Audit logs

Details: There is no audit trail in the BizTalk Administration console for such things as when a Port or Host Instance was stopped, (re)started and why (error or console) or by whom. Also when an what version of a DLL was imported into the BizTalk database.  Details of when certain events occurred could help to diagnose issues.  See Enable – Disable ports history in BizTalk

ESB Exception Portal

Issue: ESB.AlertService.QueueGenerator.ProcessFaultsForQueue – Cannot interpret token ‘!’ at position 62

Details: This is caused when in the ESB Exception Portal you add a Alert rule that contains a not condition and it creates it with a != rather than a <>
Work Around:  Run the following SQL with dbo priviliges

use [EsbExceptionDb]
update [AlertCondition] 
set Operator = '<>'
where Operator = '!='
update [Alert] 
set ConditionsString = Replace(ConditionsString,'!=','<>')
where ConditionsString like '%!=%'

Fix: Edit the following .aspx pages
ESB.Portal\Alerts\ConditionAdd.ascx & AlertEdit.aspx
Change != to <>


WCF-WebHttp adapter

Bug: BizTalk WCF-WebHttp adapter does not detect 500 error & http  StatusCode not available for other errors codes (fixed in CU5)

Details: When you get a 500 error from a RESTful service using the WCF-WebHttp adapter it behave differently from other non 200 HTTP status codes.
For other error codes it throws a fault exception with the response payload including the payload returned.  This makes it hard to handle 404 errors  in a messaging only solution
See BizTalk WCF-WebHttp adapter does not detect 500 error for more details. Workaround: As a work around you could develop orchestrations to check for the WCF.InboundHttpStatusCode ContextProperty and its value and catch the other errors in a System.Exception block* (see bug below)
Fix: The fix for the 500 not throwing an error is included in CU5

Bug: BizTalk WCF-WebHttp adapter does not set the message type on error

Details: When you get a non 200 series http status code from a RESTful service using the WCF-WebHttp adapter, the SOAP fault message published to the message box does not have the context property MessageType.  This means you cannot map it or catch it in a Fault on the Logical Port in the Orchestration
Work Around: Catch it in a System.Exception block in the Orchestration, see (BizTalk 2013 R2 JSON Encoder error – “Object reference not set to an instance of an object” – Part 1) or use BRE rules in a Pipeline to handle the SOAP Exception see BizTalk 2013 R2 JSON Encoder error – “Object reference not set to an instance of an object” – Part 2
Note: Also see above bug where it does not throw the 500 HTTP status as an exception.

Bug: BizTalk WCF-WebHttp adapter does not set http status code on error

Details: When you consume a RESTful service and get a non 200 series status code back, it will throw a SOAP exception in the Adapter (apart from the 500 status as above) and not promote the http status code in the message context InboundHttpStatusCode or InboundHttpStatusDescription like it does for a successful ones.  If these were in the Context Properties it would make handling exceptions easier.
Work Around: Have to inspect the text in the System.Exception message to work out what exception was thrown

Missing: BizTalk WCF-WebHttp adapter ability to suppress 404 status code

Details: When you do a get on a RESTful service and get a 404 status code and a payload saying that the object you asked for does not exists, it will throw a SOAP exception.  It would be nice to be able to suppress a 404 status code (or other status codes) on a GET (or other operations) and to parse the response as normal through the pipeline and process as business exception rather than a System Exception.

WCF-SQL adapter

Bug: SQL Polling: Receive Location polling data after service window stop time

Details: If you Enable service window on a WCF-SQL port it can sometimes poll outside of that window.  See Stackoverflow: Receive Location polling data after service window stop time
Work Around: None know.
Note: Occurred in BizTalk 2013 R2 CU1

SFTP Adapter

Missing: Cannot configure SFTP for read only files.

Details: There is no option like Delete After Download = No and Enable Timestamp comparison like the FTP Adapter.  See Microsoft BizTalk Server 2013 R2 SFTP Adapter Tricks and Pitfalls – The Messaging Engine failed while notifying an adapter of its configuration
Work Around: Install a third party adapter that does have this option.

Missing: Cannot configure SFTP to use temporary file names

Details: There is no option to use “Use temporary file while writing” or “Rename files while reading” like the file adapter for the SFTP adapter nor a After Put like the FTP adapater to rename the file.  This can lead to issues with partially written files being picked up
Work Around: Use the Temporary Folder option

Pipeline components

Issue: Changing the TargetCharset in the XML or Flat File assembler has no effect in the BizTalk Administration Console

Details: If you change the TargetCharset value in a pipeline via the BizTalk Administration console it does not change the outgoing payload to that encoding. See Flat File Assembler Encoding and Charset
Work Around: Change the Encoding in Visual Studio and redeploy the pipeline.
Note: This has been an issue since BizTalk 2006, see BUG: The TargetCharset value in an XMLTransmit pipeline configuration may not take effect as expected in BizTalk Server 2006

Issue: The ESB Add Namespace pipeline component adds the BOM back

Details: If you use the ESB Remove Namespace pipeline component and tell it RemoveByteOrderMark and follow it with a ESB Add Namespace Pipeline component in a send pipeline to a file, then the file produced will have a byte order mark.
Work around: Use a custom add namespace pipeline component.

Bug: The BizTalk JSON Encoder hangs forever

Details: A  XML schema that references a complex type or another schema will cause the JSON Encoder to Hang.
Work around: Simplify the schemas you use to create JSON payloads.
More Details: Mark Brimble’s blog post JSON Encoder hangs forever

Issue: The BizTalk JSON Encoder applies same type to elements with the same name

Details: If you have elements at more than one level of your XML schema with the same name, but different types, then it will apply the same type as per the first one it encounters.  This will either cause things to be quoted when they should not be, or if it is a string that it thinks is a int etc. it will throw the following exception if the string cannot be an int.
“There was a failure executing the send pipeline <pipeline & URI details> Reason: Input string was not in a correct format. “
Work around: Rename the fields so they are unique.
More Details: Pim Simons blog post JSON Encoder Type Bug who found it in BizTalk 2016

Issue: The BizTalk JSON Decoder drops trailing 0’s after the decimal

Details: If you use the JSON Decoder and you have a decimal element it will drop trailing zeroes after the decimal point. E.g. -10.00 becomes -10.  If there are non zeroes it will leave it alone e.g. 10.41 stays 10.42
Work Around: In a map use a scripting functoid and format it back to the number of decimal places required Return parameter.ToString(“F2”);
 this work around will format it to two decimal places even if there are more, so please ensure you format to the appropriate number of places.

Issue: The BizTalk JSON Encoder adds a outputs a Integer as a decimal

Details: If you use the JSON Encoder and have a element defined as Integer, when it goes through the JSON Encode it becomes a decimal, e.g. 100 becomes 100.0
Work Around: Change the type from Integer to Int or Long depending on the size of the expected number (if unbound, use long).

Issue: The BizTalk JSON Encoder adds a time to a Date

Details: If you use the JSON Encoder and have a element defined as Date, when it goes through the JSON Encoder it becomes a datetime, e.g. 1999-05-31 becomes “1999-05-31T00:00:00”
Work Around: Change the type to string.

Issue: The BizTalk JSON Encoder changes blanks in XML to null in JSON

Details: If you use the JSON Encoder and have a element that is empty, it becomes a null in the JSON payload.
More Details: REST JSON Christmas Puzzle
Work Around: Use the BRE Pipeline and do a Replace the string “: null in the message body with the string “: “” (initial concept from REST JSON Christmas Puzzle – Work around).
Note: The above work around has an unintended side effect that it causes a BOM to be added. This may cause issues with some systems.

Quirk: The BizTalk JSON Encoder changing date-time timezone

Details: If you use the JSON Encode and have a element defined as a datetime, when it goes through the JSON Encoder it change it to local times. e.g. e.g. in 1999-05-31T13:20:00.000-05:00 becomes “1999-06-01T06:20:00+12:00”.
Work Around: Change the type to string.
Note: As the time is still actually the same actual time, classifying as a quirk.

Quirk: The BizTalk JSON Decoder changing date-time timezone

Description: If you use the JSON Decoder it will cast ISO formatted dates to the local time zone, See BizTalk JSON Decoder changing date-time timezone
Work Around: None
: As the time is still actually the same actual time, classifying as a quirk.