Server
[AI]Fixed the "Test Connection" action for AI connection strings failing with RefusedToAnswerException when the selected model (e.g. OpenAI gpt-4o) refused the probe request[Audit Log]Added audit logging for sharded delete/patch-by-query operations[Audit Log]Added audit logging for collection delete operations triggered from the Studio[Backup]Fixed a null reference crash when the backup type changed during an active backup[Backup]Ensured all backup work runs on the dedicated backup thread (honoring its BelowNormal priority) instead of dispatching async continuations to the thread pool[Certificates]Fixed a persistent 403 after a node was rebuilt with fresh storage and received a full Raft snapshot, by firing the certificate-update notification on snapshot install so the cached UnfamiliarCertificate status clears[Cluster]Fixed the 32-bit async commit guard in RachisConsensus[Cluster]Fixed the Cluster Observer reporting a misleading "Replication not up to date" reason when index lag was the actual blocker for a node leaving Rehab, by collecting all lag indicators instead of stopping at the first[Cluster Dashboard]Suppressed spurious WebSocketError.ConnectionClosedPrematurely errors in the proxy and Cluster Dashboard WebSocket handlers[Cluster Transactions]Fixed cluster transactions being silently skipped after attaching database files to a new server or restoring from a snapshot, by resetting LastCompletedClusterTransactionIndex[Corax]Hardened buffer initialization and added bounds checking in GrowableBuffer, MemoizationMatch, and SortHelper.FindMatches[Corax]Changed SpatialMatch to default its count to the number of entries instead of long.MaxValue[Corax]Improved memoization buffer memory management and made the growable buffer's maximum size configurable[Core]Fixed the length computation in GetLazyStringTempComparisonBuffer[Core]Wrapped CancellationTokenSource.Cancel() in SafeCancel across dispose/stop paths so an AggregateException from a registered callback can no longer skip critical cleanup (replication, cluster maintenance, ETL, queue sink, changes connections)[Core]Fixed StringSegment.EndsWith/LastIndexOf boundary bugs and FastStack/FastList defects (CopyTo size update, TryPeek out-of-bounds read, RemoveAt reference leak)[Core]Fixed Sparrow encoding bugs: BitVector.IndexOfFirstSetBit, VariableSizeEncoding byte offsets, and ZigZag encode/decode for negative values[Databases]Fixed RecreateDatabase creating Voron files for non-existent databases[Documents]Allowed Raven-prefixed metadata keys (e.g. Raven-Replication-Version, Raven-Replication-History) to be stored on documents outside of legacy import[Embedded]Added a configurable ProcessKillTimeout for the embedded server[ETL]Serialized error details as JSON in the queue ETL processors[ETL]Changed the default Raven ETL load-request timeout from 12 hours to 300 seconds, and fixed changes to LoadRequestTimeoutInSec not being recognized as a task update[HTTP]Suppressed expected I/O errors logged during web host disposal[Indexing]Prevented a server crash caused by recursive additional sources in indexes[Licensing]Fixed restore failing with a subscription license-limit exception when the database had a single subscription that was within the allowed limit[Linux]Fixed cgroup v2 memory controller detection on the Azure Linux kernel[Linux]Set a umask on the RavenDB service[Memory]Fixed Windows job-object memory-limit detection by reading the correct JOBOBJECT_EXTENDED_LIMIT_INFORMATION value[Monitoring]Added a custom OpenTelemetry environment-variable reader to work around issues in the OpenTelemetry SDK[PostgreSQL]Streamed PostgreSQL query results one document at a time instead of buffering the entire collection in memory[PostgreSQL]Enabled the PostgreSQL integration automatically when experimental features are enabled in the Setup Wizard[Querying]Reduced managed allocations during Lucene query result scoring by storing ScoreDoc arrays in unmanaged memory[Replication]Fixed stale half-open incoming replication connections blocking new connections by guarding disposal in AssertValidConnection[Replication]Normalized pull replication path filters consistently on client and server[Replication]Fixed cluster admin certificate handling when setting up replication[Replication]Included attachment stream sizes when computing batch sizes[Setup]Skipped server simulation when generating the setup package for a secured setup[Setup]Added support for marking nodes as passive in a secure setup[Setup]Resolved the custom certificate path from settings.json and created the target directory when missing[Sharding]Fixed ShardedDatabaseContext not disposing its connections[Subscriptions]Fixed ongoing-task enumeration failing when an imported subscription had a non-positive subscription ID[Voron]Fixed a reference-count under-count on the encrypted storage read path that could free or zero a decrypted page buffer while still in use, by resetting the page locator in CryptoPager.TryReleasePage[Voron]Suppressed background sync/flush errors raised while the storage environment is being disposed, and skipped starting those operations during disposal[.NET]Updated to .NET 8.0.27
Client
[Querying]Fixed Statistics() not being populated when retrieved after calling ToDocumentQuery()
Studio
[Custom Sorters/Analyzers]Added inline duplicate-name validation when creating custom sorters[Custom Sorters/Analyzers]Fixed tooltips and the sorter name template in the Test Custom Sorter view[Databases]Hid the replication factor slider when the replication factor is 1[Debug]Improved nesting and formatting in the threads (IO stats) view[Documents]Added support for the dual change-vector format in change-vector parsing and display[Edit Document]Adjusted the order of items in the document title area[ETL]Fixed the "Document ID Postfix" test action in the RavenDB ETL task view[Indexes]Enhanced the deletion warning for map-reduce indexes that have output collections in a cluster[Replication]Defaulted the conflict resolution option to resolve to the latest version
Samples
- Added a new Samples page with practical, scenario-based examples demonstrating how RavenDB features can be used to solve real application problems.