Issues fixed in MarkLogic Server 12.0.1
- Last Updated: April 6, 2026
- 4 minute read
- MarkLogic Server
- Documentation
Released: December 4, 2025
The following issues have been addressed in this release:
| Bug ID | Details |
|---|---|
| MLE-25264 | Optic queries issued via the Java Client API that access a TDE view may create unnecessary locks under certain conditions. Even after this fix, this may still happen if all of the columns in the TDE view are nullable. To prevent this, be sure at least one column in the TDE view is not nullable. |
| MLE-25262 | Using the op:ann-top-k() / op.annTopK() function fails when a TDE includes a virtual column with nullable=false and the data has been written to an on-disk stand. Queries return no results even though rows contain valid values, and selecting the vector column causes a server crash. The issue does not occur when the data remains in an in-memory stand or when the virtual column is set to nullable=true. |
| MLE-25261 | Selecting only system columns (e.g. rowid) from a virtual view results in a segmentation fault. Select at least one other non-system column to prevent the segmentation fault. |
| MLE-25254 | SQL queries that use UNION and UNION ALL are not handled correctly in the query the plan cache, as it does not keep the ALL property into consideration when creating the plan hash. This can result in the wrong cached query plan being used for certain queries. |
| MLE-25253 | Deeply nested SQL SQLUnion can cause severe performance degradation due to slow query analysis. |
| MLE-25244 | Under conditions where a time correction happens while MarkLogic is in the process of starting, log messages reporting the wrong value for Info:recursiveChown events may appear. e.g. Info:recursiveChown took 1844674407370 seconds |
| MLE-25242 | Executing a SPARQL query that uses the xdmp:unnest magic property without a filter clause results in the error XDMP-UNDVAR: Undefined variable. When a filter is added, the query works correctly. |
| MLE-25161 | The "Now" button on the Monitoring web page will function off local time rather than server time. If the local user is on a different time zone than the server, the history graph could be missing recent results. |
| MLE-25160 | The logout page for applications running on appservers 8002 and 8000 does not display the expected UI header/label that is visible during normal logged-in sessions. |
| MLE-25158 | Tables on status pages could be disfigured on smaller screens. When the browser window is resized, table columns are truncated and replaced with ellipsis (...), making some content inaccessible. |
| MLE-25157 | In the Database Status tab, cache status tables (List Cache, Compressed Tree Cache, Triple Cache, Triple Value Cache, Large Binary Cache) display empty rows for replica forests. While the Forest Status table correctly lists both primary and replica forests (e.g., 6 primary + 6 replica), the cache tables show placeholders for replicas without any data, resulting in misleading empty rows. |
| MLE-25156 | Restarting the Host via Admin UI results in a 404 Not Found error. |
| MLE-25155 | When switching quickly from the Monitoring Dashboard to Monitoring History, the following error appears in the browser console: Uncaught TypeError: self.controlPanel.stop is not a function |
| MLE-25153 | Restore operations from S3 in MarkLogic 12.0.0 may intermittently hang and trigger segmentation faults. Restarting the server may allow the restore to complete. |
| MLE-25152 | The Admin UI Cluster API Tokens page will not render correctly when accessing the Admin UI on a host that does not have the security forest mounted locally. The XDMP-FORESTNOTLOCALerror is thrown when rendering the page. To work around, access the Admin UI via the host that also has the security forest. |
| MLE-25151 | Restore of an incremental backup with an external large data path writes the data alongside the large directory, instead of inside it, resulting in an improper restore of the large data directory. |
| MLE-25149 | When installing the MarkLogic 12.0.0 RPM or the MarkLogic 11.3.1 RHEL9 package on RHEL 8 and 9 systems, the server automatically starts immediately after the installation completes. This behavior was not present in previous (non-RHEL9 compatible) RPMs (e.g. 11.3.1 on RHEL 7 or 8). |
| MLE-25148 | Passing a vector embedding via bound parameter to v1/rows does not handle the parameter as a typed value. |
| MLE-25107 | In MarkLogic 12.0.0, certain SQL queries do not consider the broadcast-hash-join optimization, potentially resulting in slower performance for queries. |
| MLE-25105 | The xdmp:sql(query, 'map') function with the "map" option returns an incorrect count when using fn:count() on the resulting sequence. The count is one higher than the actual number of items. |
| MLE-25102 | When using the Optic API with op:ann-top-k() / op.annTopK() for vector similarity search, changing the query vector does not immediately update the results. The results from the previous query vector will be returned until the Optic query plan cache times out. |
| MLE-25021 | In the footer of the XCC Javadocs, there is a link to https://developer.marklogic.com/pubs that is broken and returns HTTP 404 response. |
| MLE-24924 | MarkLogic 12.0.0 AMI would start the MarkLogic service before the step to source EC2 user data. If values are passed in as environment variables in the user data, these would not be set correctly prior to MarkLogic starting. |
| MLE-24796 | The value set for the MLCMD_JAVAOPTS variable in MLCMD is not compatible with Java 17. |
| MLE-24772 | In MarkLogic 12.0.0, when new hosts join a cluster, the commit and non-blocking timestamp may be set to an invalid value. This manifests as an error in the admin UI when viewing the database status page:
The non-blocking timestamp for the 'Documents' forest is 'nonblockingTimestamp': '8795705594687171969', XDMP-DATETIME: xdmp.timestampToWallclock(xs.unsignedLong('8795705594687171969')) -- Invalid dateTime 29842-06-25T19:24:28.7171969 |
| MLE-24586 | When attempting to clear a forest after removing the label file, the server would still check for the label file which leads to segmentation fault. |
CVEs Addressed
- CVE-2025-9230
- CVE-2025-9231
- CVE-2025-9232