Weekly Release Notes

Weekly Release Notes — November 9, 2026

The release notes summarize the changes introduced over the previous week.

New Features & Improvements

  • Bring Your Own (BYO) engine setup in Phrase TMS now offers Lite templates that let you connect an engine's own API directly, without building or hosting an adapter; the bundled OpenAI-compatible template now works with any OpenAI-compatible vendor, and setup tooltips link to the BYO Lite guide
  • Term bases in Phrase TMS now support marking a term as Strict, distinct from Preferred/Forbidden, including import/export via TBX and XLSX and as a selectable XLSX export field
  • HubSpot connector now has a "maximum days since last update" setting to limit how far back content is listed, so large HubSpot accounts load much faster when creating jobs
  • Marketo connector now supports API users restricted to a single workspace, using that workspace as the connector's root folder
  • Drupal: content created or edited in Drupal can now be sent to Phrase TMS automatically for translation through continuous jobs, with translator settings controlling the project template, due date, and job grouping
  • Added a clear error message when deleting a client or business unit is blocked because it's still used to restrict a user
  • Vendors list page: consolidated the duplicate "Add vendor" buttons into a single action in the table toolbar
  • Added a notice warning vendors that running machine translation or AI in Analyze or Pre-translate may consume the project owner's MTU or AIU allowance
  • Added an option to exclude linked child keys from jobs and job templates sent to vendors, with an account-wide default and a new linked_key property on the List keys API
  • Linked Keys page: you can now export the filtered search results, with a notice when results may be capped at 10,000 keys
  • Recycle bin now restores only the most recently deleted version of a key when multiple deleted keys share a name, and a new API endpoint restores a collection of deleted keys at once
  • Repo syncs can now export automatically on a schedule, when a branch is merged, or when a job completes, and each repo sync can have a designated owner on whose behalf automated actions run
  • Webhooks can now notify you about failed branch merges and syncs, including Slack and Microsoft Teams messages
  • Strings Catalog (.xcstrings) export now supports choosing the catalog format version, fixing compatibility with Xcode 26
  • Phrase TMS now supports MDX files (Markdown with embedded JSX) as a dedicated file format, with configurable translatable element and attribute filtering, preserved JSX expressions, and automatic exclusion of ESM import/export statements
  • Self-service Analytics: time-based charts now let you switch between daily, weekly, monthly, and quarterly views, with the most recent period shown by default
  • Atlas now saves a backup before updates that replace existing content, so an unintended overwrite can be detected and restored
  • Atlas usage reports for admins now show member names where available instead of raw identity IDs

Bug Fixes

  • Fixed: Pre-translation using Phrase Language AI could fail with an authorization error when the machine translation connector belonged to a different organization than the user who triggered it
  • Fixed: requests with more than 100 locales in the Accept-Language header returned a misleading error instead of a clean validation error
  • Fixed: the project style guide list could fail to load when a content group was linked to a project with many target languages
  • Fixed: the term base list jumped back to the first entry after deleting multiple terms at once
  • Fixed: Drive access errors after reauthorizing Google Drive (v2)
  • Fixed: GitLab exports failed with an error for target branch names containing a slash
  • Fixed: connector failure notifications could fail to send when the generated error message was unusually long
  • Fixed: the Marketo connector could list folders from a different workspace than the one configured as the root folder
  • Fixed: a HubSpot multi-language page export could report success without the translated content actually appearing in HubSpot
  • Fixed: DITA import rejected valid files that contained a list inside a footnote
  • Fixed: ODT export could drop floating text boxes and drawn shapes, and flatten image anchors, on image-heavy source documents
  • Fixed: QA and LQA runs could be denied with a read-only error on assigned, uncompleted vendor-forwarded job parts
  • Fixed: several issues in the IDML in-context preview, including hidden text when built from a PDF template, text frame wrapping, inset spacing, scaled text, tab leaders, and clipped single-line frames
  • Fixed: GET job responses could return a folder path in the filename field, breaking integrations that match jobs by filename
  • Fixed: job file names could be shortened to just the last path segment after reimporting source from a Contentstack-connected project
  • Fixed: updating a job's source file could drop the folder path from the uploaded file name
  • Fixed: deleting a net rate scheme referenced by a client, including a soft-deleted client, failed with an error instead of succeeding or showing a clear message
  • Fixed: uploading a bilingual MXLIFF file with an invalid attribute value failed with an error instead of a clear validation error
  • Fixed: updating project pre-translate settings failed with an error when the pseudo-translate settings were sent as null
  • Fixed: a project could stay in Assigned status instead of auto-completing when a job had a failed machine-translation pre-translation
  • Fixed: project managers restricted by both Client and Buyer could not see projects shared from their assigned Buyers
  • Fixed: assigning a member to a space they were already assigned failed with an error
  • Fixed: slow loading of the jobs dashboard, new job page, analytics tab, and edit team page
  • Fixed: repo sync exports could fail without a clear error, and a failed pull request creation could prevent later exports from creating pull requests
  • Fixed: adding a new Bitbucket repo sync could fail with an "Invalid client_id" error on the Atlassian consent screen
  • Fixed: the ICU message preview in the Strings editor ignored the target locale's plural rules
  • Fixed: duplicating a project could fail and leave it stuck in a "cloning" state
  • Fixed: only the job creator, not the job owner, could lock or unlock a job, despite the UI stating otherwise
  • Fixed: jobs created automatically by the Figma plugin's upload preview always got a one-month due date, overriding the TMS due date scheme
  • Fixed: switching organization in one browser tab wasn't reflected in other open tabs until reloaded
  • Fixed: videos embedded in in-app messages failed to load
  • Fixed: creating a service account could fail when the username contained certain special characters
  • Fixed: creating a service account with Strings access was rejected when the organization was at its seat limit
  • Fixed: social sign-in (Google, Microsoft, GitHub) showed a raw  error instead of a friendly message when the provider briefly failed
  • Fixed: the Transform JSON with jq action failed without a clear error message on binary input
  • Fixed: publishing a workflow with a misconfigured loop step failed instead of showing a clear validation error
  • Fixed: duplicate actions appeared in the workflow editor's action search
  • Fixed: the Map job to workflow steps action returned an “invalid expression” error when no access token was provided
  • Fixed: the Slack channel selector listed every public channel instead of only the channels Orchestrator has been invited to
  • Fixed: some MCP connector results could appear empty
  • Fixed: the Self-service Analytics Volume dashboard filtered dates differently than Advanced Analytics, causing mismatched counts
Was this article helpful?
★ ★ ★ ★ ★

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.