# Release History

***

### V1.122

#### Created: 2026-03-02

* Fixed an issue where outbound syncs using cloud storage did not handle null dates correctly

***

### V1.121

#### Created: 2026-02-26

* Fixed an issue where outbound syncs using S3 buckets did not work for multi-file imports when a bucket path was configured

***

### V1.120

#### Created: 2026-02-24

* Added a "Mirror" outbound sync strategy

***

### V1.119

#### Created: 2026-02-13

* Added a new consumer UDF to fetch async import summaries

***

### V1.118

#### Created: 2026-02-10

* Outbound syncs using blob storage now leverage gzip compression
* For outbound syncs via cloud storage, if more than 10,000 records are failed then the run will fail with a summary message

***

### V1.117

#### Created: 2026-02-07

* Outbound syncs using cloud storage now split into multiple import files

***

### V1.116

#### Created: 2025-12-20

* Added a keepalive to the SFTP inbound connection

***

### V1.115

#### Created: 2025-11-14

* Switched to using double-doublequotes to escape doublequotes in data extension import files

***

### V1.114

#### Created: 2025-11-03

* During nightly billing, old staged files will be deleted
* Relative path will now be displayed correctly from the FETCH\_FTP\_LOCATIONS UDTF
* For outbound SFTP-based syncs, the file location's relative path will only be used if the file location has a TypeID of 9

***

### V1.113

#### Created: 2025-10-22

* Fixed an issue where REST-based incremental syncs failed when the primary key and cursor field were the same

***

### V1.112

#### Created: 2025-10-14

* In Hyperforce, the Data Extract Type ID for data extension extracts may by different to the standard one used previously. To accomodate this, we now discover data extract types and match on the name

***

### V1.111

#### Created: 2025-10-07

* Added another consumer UDF: FETCH\_DATA\_EXTRACT\_TYPES

***

### V1.110

#### Created: 2025-10-01

* Added a consumer UDF to to fetch the full details of a data extract definition

***

### V1.109

#### Created: 2025-09-30

* Added two new consumer UDFs for data extract definition creation and listing
* Included a hash of the data extension's name in the extract filename to prevent collisions

***

### V1.108

#### Created: 2025-09-29

* Shortened the name of the data extension extracts, to stay under the 50 character limit

***

### V1.107

#### Created: 2025-09-28

* Fixed the naming and filespec of inbound SFTP syncs

***

### V1.106

#### Created: 2025-09-26

* Fixed an issue affecting outbound syncs introduced in the previous release

***

### V1.105

#### Created: 2025-09-24

* Fixed an issue where file transfer definition names with invalid or too many characters could cause the sync to fail

***

### V1.104

#### Created: 2025-09-22

* When retrying object creation during data extension extract, a different name will be used in order to avoid clashing with already created objects

***

### V1.103

#### Created: 2025-09-16

* Improved the error handling for Data Extension Extract definition creation

***

### V1.102

#### Created: 2025-09-09

* Added extra info level logging for cloud storage outbound syncs

***

### V1.101

#### Created: 2025-09-08

* Excluded errors from the job status detailed report which have an error type of "Success"

***

### V1.100

#### Created: 2025-09-07

* Outbound sync import log csv files are now interpreted via ordinal position due to language variation
* For outbound syncs with GPG, reverted back to using the file location referenced by the import template

***

### V1.99

#### Created: 2025-09-06

* Outbound SFTP syncs will retry checking the import log for up to 10 minutes

***

### V1.98

#### Created: 2025-09-05

* Added a check for the "Row Number" column in the import log file

***

### V1.97

#### Created: 2025-09-04

* Improved error reporting for outbound syncs
* Outbound FTP-based syncs using GPG will now create import jobs using the directly provided file location key instead of the one specified in the file import template
* Fixed an issue where outbound FTP-based non-GPG syncs whose file locations use subdirectories, would not include the full path in the file import task. Due to SFMC API limitations, this means that the ftp location's key must match either its name or its ID (case insensitive)
* Applied a connection method rename to existing connections

***

### V1.96

#### Created: 2025-09-03

* Fixed an issue where the import job for imports from cloud storage would fail globally if all records contained errors

***

### V1.95

#### Created: 2025-09-03

* If an async import job fails, the full status object will be logged to the event table

***

### V1.94

#### Created: 2025-09-02

* Improved error handling when fetching FTP locations
* Introduced a new inbound sync parameter "Automatically fix CSV issues" which toggles on the CSV repair functionality

***

### V1.93

#### Created: 2025-09-02

* Fixed an issue where completed import tasks using cloud storage would be interpreted as failed

***

### V1.92

#### Created: 2025-09-02

* For outbound syncs, increased the allowable size of cloud storage files to the maximum of 5GB

***

### V1.91

#### Created: 2025-08-30

* If an outbound data extension sync errors, the automation task and associated objects will no longer be deleted

***

### V1.90

#### Created: 2025-08-30

* Improved log messages for data extension exports to cloud storage

***

### V1.89

#### Created: 2025-08-26

* Improved automation task management and error handling for outbound SFTP syncs

***

### V1.88

#### Created: 2025-08-15

* Outbound syncs will now wait up to an hour for import to complete
* Added retries to all actions related to automation tasks, due to intermitting HTTP 500 responses when checking automation statuses

***

### V1.87

#### Created: 2025-08-14

* Fixed an issue where failed outbound sync errors could not correctly check the file transfer activity

***

### V1.86

#### Created: 2025-08-09

* Added null timestamp handling for inbound data extensions via SFTP and cloud storage

***

### V1.85

#### Created: 2025-08-08

* Inbound SFTP and cloud storage syncs now guard against invalid CSV files by tracking the record context. Quote marks within text fields will be escaped, and newline characters replaced with a period character.

***

### V1.84

#### Created: 2025-07-28

* Separated UTF-8 and UTF-16 file formats to allow version rollback

***

### V1.83

#### Created: 2025-07-28

* Fixed an issue where export automation status checks would fail after the auth token was refreshed
* Added validation checks on cursor field values after full refresh via SFTP and cloud storage

***

### V1.82

#### Created: 2025-07-24

* Increased outbound data extension sync wait limit to 2 hours

***

### V1.81

#### Created: 2025-07-22

* Increased the outbound data extension automation time limit from 10 mins to 20 mins
* Logged the final automation status in the timeout error message

***

### V1.80

#### Created: 2025-07-21

* If no FTP location exists with type id 6, fall back on a relative export path without a subdirectory

***

### V1.79

#### Created: 2025-07-21

* API token will be refreshed before fetching ftp or file transfer locations
* Added a consumer UDTF to directly fetch FTP locations

***

### V1.78

#### Created: 2025-07-20

* Fixed an issue where an error would be raised if session expired while checking an automation status
* Added warning logging to show available FTP locations when it is missing

***

### V1.77

#### Created: 2025-07-17

* Inbound bulk data extension syncs will now use automation tasks to perform the extract

***

### V1.76

#### Created: 2025-07-04

* Removed the relative path suffix from outbound syncs using cloud storage

***

### V1.75

#### Created: 2025-07-02

* Granted the CONSUMER\_FUNCTION\_CALLER application role read access to the temporary stage used for data extracts, and the CSV file format object

***

### V1.74

#### Created: 2025-07-01

* Set the export codepage to 65001 (utf-8)
* Added session refresh logic to the file automation wait loops

***

### V1.73

#### Created: 2025-07-01

* Fixed an issue where some locales did not handle dates correctly

***

### V1.72

#### Created: 2025-06-29

* Fixed an issue where timestamps were not parsed correctly when loading from internal stages

***

### V1.71

#### Created: 2025-06-27

* Fixed an issue where inbound data extension syncs may fail to sync any records due to incorrect CSV header parsing

***

### V1.70

#### Created: 2025-06-26

* Fixed an issue where inbound SFTP data extension syncs did not follow the date format of the user's locale

***

### V1.69

#### Created: 2025-06-26

* SFTP inbound syncs will now use an internal stage as an intermediate location to load from

***

### V1.68

#### Created: 2025-06-23

* Removed excess jar files due to security scan finding

***

### V1.67

#### Created: 2025-06-23

* Inbound SFTP transfers will now leverage an internal Snowflake stage instead of streaming directly to the results table

***

### V1.66

#### Created: 2025-06-20

* Updated FIND\_TEXT\_IN\_DATA\_EXTENSION\_EXTRACT to yield the hex value in the event of UTF-8 conversion issues

***

### V1.65

#### Created: 2025-06-18

* Tracking extracts will now include the previous 24 window to include late-arriving data

***

### V1.64

#### Created: 2025-06-18

* Added a consumer UDTF to find a chunk of text in a raw data extension extract

***

### V1.63

#### Created: 2025-06-18

* Fixed an issue where inbound syncs using cloud storage could not locate the exported file, even when it was present

***

### V1.62

#### Created: 2025-06-13

* Added handing for expired auth token during automation status checks
* Increased minimum wait time for cloud storage and SFTP exports to 15 mins
* Added additional logging to show which files have been written to the stage in the event that the cloud storage extract times out

***

### V1.61

#### Created: 2025-06-13

* Prevented concurrent Snowflake queries between threads, to avoid Snowpark thread safety issues

***

### V1.60

#### Created: 2025-06-06

* Fixed an issue where SFTP server not returning the file size correctly could break tracking extract retrieval.
* Specified escape character for CSV parsing

***

### V1.59

#### Created: 2025-06-05

* Inbound data extension syncs, when parsing CSV files, will now interpret dates according to the API user's configured locale
* Fixed an issue where empty timestamp fields caused an error when using the REST API

***

### V1.58

#### Created: 2025-06-05

* Fixed an issue where the Stream Type list included a null value, breaking the new Sync Engine UI
* Fixed an issue where REST API-only syncs would not sync inbound records
* Removed migration logic for connection method rename
* Added a new consumer UDF, GET\_API\_USER\_INFO

***

### V1.57

#### Created: 2025-06-03

* Fixed an issue impacting Data Extension fetching via the REST API
* Fixed an issue where the 'gpg\_key\_name' parameter was expected during a connection test

***

### V1.56

#### Created: 2025-05-29

* Fixed an issue where existing data extensions were not detected correctly during creation of missing ones

***

### V1.55

#### Created: 2025-05-19

* Fixed an issue where tracking extracts would fail with a recursion error

***

### V1.54

#### Created: 2025-05-12

* Added retries to tracking extract file copy from SFTP
* Changed the Snowflake data type of all tracking extract date-time fields to TIMESTAMP\_TZ
* Changed the primary key of the StatusChanges inbound stream to include additional fields for uniqueness

***

### V1.53

#### Created: 2025-05-08

* Fixed an error when fetching data extension records via SFTP

***

### V1.52

#### Created: 2025-05-06

* For tracking extracts, added cleanup for temporary files used in internal stages

***

### V1.51

#### Created: 2025-05-05

* Implemented support for cloud storage file transfer locations
* Added a new inbound stream for tracking extracts
* Added support for inbound data extension syncing via cloud storage

***

### V1.50

#### Created: 2025-04-28

* Fixed an issue with date handling in the newer SFTP function

***

### V1.49

#### Created: 2025-04-27

* Normalized the SFTP private key before passing to the java UDF

***

### V1.48

#### Created: 2025-04-24

* Added the bouncycastle provider to the java UDF to improve SSH key handling capabilities

***

### V1.47

#### Created: 2025-04-23

* Attempted to workaround an issue where the Java SSH library mistakenly interprets a private key as being encrypted with a passphrase

***

### V1.46

#### Created: 2025-04-19

* Improved SSH2 key support in the new java handlers

***

### V1.45

#### Created: 2025-04-18

* Inbound syncs of Data Extensions now support the incremental sync strategy under certain conditions
* SFTP inbound sync performance has been greatly improved via a new java-based UDTF

***

### V1.44

#### Created: 2025-04-08

* Added extra retry modes to outbound sync API operations
* Reduced inbound sync concurrency from 5 to 3, to reduce resource contention on Marketing Cloud services

***

### V1.43

#### Created: 2025-04-08

* Further relaxed the data extension data API response checks due to inconsistencies

***

### V1.42

#### Created: 2025-04-07

* Relaxed the data extension data API response checks due to inconsistencies

***

### V1.41

#### Created: 2025-04-05

* Fixed an issue where null characters in Data Extension csv exports caused a sync error
* Adjusted the wait time for data extension SFTP exports to be in proportion to the number of records present

***

### V1.40

#### Created: 2025-04-02

* When retrieving data extension fields in batches of 20, if an API error occurs we will now retrieve that batch one data extension at a time

***

### V1.39

#### Created: 2025-04-02

* Data Extension SFTP exports now wait up to 1 hour for completion

***

### V1.38

#### Created: 2025-04-01

* Wait time for SFTP files increased from 10 mins to 30 mins
* Fixed an issue where inbound data extension syncs may error due to utf-8 character decoding

***

### V1.37

#### Created: 2025-03-28

* Fixed an issue where inbound data extension syncs may be missing the final record
* Improved null handling for normalized views, and set the precision and scale for numeric columns to match the data extension attributes

***

### V1.36

#### Created: 2025-03-19

* Added an experimental UDTF for performing a tracking extract (FETCH\_TRACKING\_EXTRACT)

***

### V1.35

#### Created: 2025-03-11

* Data Extension outbound form field is now marked as required, to prevent field mappings loading prematurely
* Added an Outbound Target Type in order to support branching in the new UI
* Non tenant-specific domains have been removed from the network rules in preparation for migration to Hyperforce. This involved forcing an imported schema file from the SOAP WSDL to use a tenant-specific domain

***

### V1.34

#### Created: 2025-03-04

* Data Extension fields will now be fetched in smaller batch sizes when a smaller number of data extensions is requested

***

### V1.33

#### Created: 2025-02-12

* Added the ability to filter the list of inbound data extension streams server side, to accomodate environments with a very large number of data extensions.

***

### V1.32

#### Created: 2025-02-07

* Restricted data extension column fetching to batches of 1000, to avoid the API error "String or binary would be truncated"

***

### V1.31

#### Created: 2025-02-01

* Rebuilt using the latest plugin devkit, which includes support for UDTF-based stream listing. This fixes the issue where a large number of data extensions would exceed the 16MB limit for stored procedures

***

### V1.30

#### Created: 2025-01-22

* Fixed an issue where data extensions did not appear in the list of streams
* Fixed an issue where timestamps inbound data extension records may be incorrectly interpreted in American date format due to the CSV formatting

***

### V1.29

#### Created: 2025-01-20

* Extended retries to include general kinds of failures, beyond HTTP

***

### V1.28

#### Created: 2024-12-17

* Fixed an issue where not all data extensions were visible when configuring an outbound sync
* Added a new consumer UDTF named FETCH\_DATA\_EXTENSIONS

***

### V1.27

#### Created: 2024-12-16

* Added tracing
* Included retries on all API calls

***

### V1.26

#### Created: 2024-12-11

* Fixed an issue where outbound partial load failures would result in an error

***

### V1.25

#### Created: 2024-12-09

* Fixed an issue where an error may be raised during outbound syncs

***

### V1.24

#### Created: 2024-11-28

* Fixed an issue where outbound results containing null values caused sync errors

***

### V1.23

#### Created: 2024-09-28

* Fixed an issue where data extension fields failed validation following Pydantic upgrade

***

### V1.22

#### Created: 2024-09-12

* Migrated consumer UDF to new convention in preparation for UI changes

***

### V1.21

#### Created: 2024-07-15

* Fixed an issue where inbound normalized views did not parse timestamps correctly

***

### V1.20

#### Created: 2024-07-11

* For inbound syncs on Data Extensions with no primary key defined, source defined primary key is now undefined instead of an empty list
* For already-configured syncs, upgraded to a newer plugin runtime version which now ignores source defined primary keys that are empty lists

***

### V1.19

#### Created: 2024-07-10

* Pinned some dependencies to ensure Anaconda packages could be used

***

### V1.18

#### Created: 2024-07-10

* Fixed an issue where SFTP was not always offered as an option for inbound syncs, even when the connection method supported it
* Updated to a newer plugin runtime version which improves progress updates for inbound syncs

***

### V1.17

#### Created: 2024-05-25

* Inbound Data Extension syncs now use SFTP if configured, as an alternative to the REST API
* Provided a new consumer UDTF named FETCH\_DATA\_EXTENSION\_RECORDS which fetches data extension records directly via SFTP

***

### V1.16

#### Created: 2024-05-17

* Fixed an issue where some SOAP API errors were not correctly passed through to the run results
* Fixed an issue where Data Extension properties were being updated unnecessarily

***

### V1.15

#### Created: 2024-05-02

* Reference Data Extensions by name
* Improved data type support in normalized views

***

### V1.14

#### Created: 2024-04-30

* Added logic to ignore Data Extensions which don't have a CategoryID

***

### V1.13

#### Created: 2024-04-02

Built with omnata-plugin-devkit==0.3.17 which includes pinned stored proc dependencies

***

### V1.12

#### Created: 2024-03-27

* Added another connection method without any SFTP configuration, for situations where only inbound syncs will be used

***

### V1.0

#### Created: 2024-03-05

This is the first package version containing release notes.

* Switch to new billing system
* Force some remaining dependencies to Anaconda to reduce application size

***
