Skip to main content

What's New

7.2.4 (72015) - 2026/06/16

Server

  • [macOS] Fixed an AccessViolationException on macOS Tahoe caused by a getmntinfo race in DriveInfo.GetDrives(), by serializing the call behind a lock

Studio

  • [Certificates] Fixed the server certificate download action in the certificates view

7.2.3 (72014) - 2026/06/09

Features

  • [Embeddings Generation] Added support for prepending contextual text to embeddings-generation chunks Docs | Guide
  • [ETL/AI] Redesigned ETL and AI task error handling with persistent errors storage, health-status tracking, a dedicated Studio "Task Errors" view and monitoring capabilities Docs | Guide

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
  • [AI Agents] Fixed AI agent action handlers failing when the handler returned a list or array, by serializing collections correctly in AddActionResponse
  • [AI Agents] Added a full-debug mode for AI agent conversations that records the raw request/response JSON exchanged with the model into a debug document
  • [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
  • [Backup] Included GenAI tasks when disabling ongoing tasks during restore
  • [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
  • [Corax] Added support for ORDER BY ... NULLS FIRST/LAST in RQL
  • [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
  • [Embeddings Generation] Added a check for a disabled embeddings-generation task when querying a static index
  • [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
  • [ETL] Fixed SQL ETL on PostgreSQL silently dropping all rows queued after the first per-row error, by retrying provider-recognized row errors and skipping the failing document
  • [ETL] Stopped SQL ETL batches when the target connection or transaction is lost, avoiding a cascade of follow-up errors
  • [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
  • [Memory] Moved the early out-of-memory check off the allocation hot path to the background memory-monitoring thread, reducing per-allocation overhead
  • [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
  • [Querying] Added support for the in operator and its negation inside the RQL when conditional clause
  • [Querying] Added a query-timings sub-scope for embedding fetch during vector.search
  • [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
  • [Replication] Validated the certificate type when creating a pull replication configuration
  • [Revisions] Added MaxOpsPerSecond throttling to the Enforce Revisions Configuration operation
  • [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
  • [Vector Search] Prevented an HNSW node from discovering itself during concurrent graph placement
  • [Vector Search] Replaced the HNSW coin-flip level assignment with the standard logarithmic formula, improving vector index insert throughput
  • [Vector Search] Kept the EdgesIndexesPerLevel cache in sync with EdgesPerLevel at the HNSW write sites
  • [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
  • [Voron] Fixed Directory.Move failing when source and destination differ on the \\?\ long-path prefix
  • [Voron] Added support for storing small attachments inline to avoid fragmentation
  • [.NET] Updated to .NET 10.0.8

Client

  • [Client API] Isolated topology updates from the ambient trace Activity so they no longer attach to the caller's span
  • [Patching] Fixed dictionary patching with variable keys and special characters by using bracket notation and consolidating JS string escaping
  • [Querying] Fixed Statistics() not being populated when retrieved after calling ToDocumentQuery()
  • [Querying] Fixed projection mapping to treat a constructor as a valid mapping strategy

Studio

  • [Connection Strings] Hid irrelevant fields when selecting a Chat model for a Google AI connection string
  • [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
  • [Documents] Grouped system collections under a dedicated category
  • [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
  • [ETL] Moved the Kafka ETL transactional ID to a more appropriate place in the task UI
  • [Indexes] Enhanced the deletion warning for map-reduce indexes that have output collections in a cluster
  • [Querying] Added NULLS_FIRST/NULLS_LAST highlighting to the RQL grammar in the query editor
  • [Replication] Defaulted the conflict resolution option to resolve to the latest version
  • [Themes] Added the ability to customize the Code and Table fonts

Samples

  • Added a new Samples page with practical, scenario-based examples demonstrating how RavenDB features can be used to solve real application problems.

7.2.2 (72007) - 2026/04/28

Features

  • [AI Agents] Multi-agent conversation support Docs | Guide
  • [AI Agents] Attachments handling for conversations Docs | Guide

Server

  • [AI Agents] Added configurable prompt cache key per AI connection string with provider-specific defaults
  • [AI Agents] Added Google Gemini provider support for AI agent conversations
  • [AI Agents] Added remote attachment support for GenAI ETL tasks with deferred download and caching
  • [AI Agents] Fixed concurrent read of blittable objects using a shared context in test GenAI script functionality which could result in AVE
  • [AI Agents] Fixed race condition in GenAI process stop where _longRunningWork could be null, causing incorrect IsRunning state
  • [Backup/Restore] Fixed TimeSeriesDeletedRanges not being marked as processed during snapshot backup and restore
  • [Bulk Insert] Fixed race condition when writing attachments to the request stream during bulk insert
  • [Bulk Insert] Fixed compression stream disposal during bulk insert to ensure final footer bytes are written
  • [Certificates] Added ability to disable client certificates while preserving them for later re-enabling
  • [Certificates] Fixed authentication to trust the server's own certificate before checking expiration
  • [Certificates] Fixed certificate disposal and PKCS12 handling on macOS in SecretProtection and CertificateUtils
  • [Certificates] Fixed MAC verification failure during PKCS12 import on macOS
  • [Cluster] Fixed _hasMoreTombstones flag not being reset between cleanup iterations in ClusterObserver
  • [Corax] Fixed faceted queries with WHERE clause to use indexed path via HashSet intersection and term materialization
  • [Corax] Fixed incorrect highlighting terms when using range filters in Corax query builder
  • [Databases] Fixed double deletion of database state when removing a node from a database group
  • [Debug] Added per-thread IO statistics (IOPS and throughput) to the Threads Runtime debug view on Linux
  • [Debug] Added download capability for stack traces from the admin debug endpoint, named with node tag and timestamp
  • [Debug] Fixed Raven.Debug path resolution in development environments using hardcoded relative path probing
  • [Debug] Fixed IO stats aggregation on the threads view by computing totals client-side from cumulative server counters
  • [ETL] Fixed ETL processing failure when encountering unsupported incremental time series by skipping them and alerting on that
  • [ETL] Fixed tombstone filtering for artificial documents from OutputReduceToCollection to ensure correct ETL replication
  • [ETL] Fixed Raven ETL document ID generation with an empty DocumentIdPostfix to avoid duplicate path separators
  • [Indexing] Fixed boolean operators and added implicit bool conversion for DynamicNullObject in static indexes
  • [Indexing] Fixed aliasing removal for spatial.distance and corrected dynamic OrderByDistance query generation
  • [Indexing] Reduced GC pressure in map-reduce indexing by replacing a redundant HashSet with a bool flag in MapReduceResultsStore and releasing stale transaction references in MapReduceIndexingContext.Dispose
  • [Indexing] Added Indexing.Querying.Corax.NullFirst sort option for ORDER BY queries handled by Corax search engine
  • [Indexing] Reduced managed memory retention by releasing stale LowLevelTransaction references held by Lucene's per-thread segment reader cache and bloom filters after indexing batches
  • [Licensing] Fixed license activation failure on an existing bootstrapped instance
  • [Monitoring] Added alert when machine core count significantly exceeds the licensed core limit, indicating potential GC thread contention
  • [Monitoring] Added GC metrics (per-kind duration, frequency, pause statistics) to Prometheus monitoring endpoint
  • [Monitoring] Fixed IO stats reporting on Linux when the data path contains multi-level symlinks by using realpath() instead of readlink()
  • [Patching] Added ability to copy attachments in JavaScript patch scripts
  • [Querying] Added now() and today() built-in RQL time functions
  • [Querying] Added WHEN conditional expression support in RQL queries
  • [Querying] Fixed experimental Lucene caching query feature which resulted in returning invalid query results
  • [Performance] Optimized query quest handler by reducing unnecessary async state machine allocations
  • [Replication] Fixed TCP connection options resource leak in ShardedIncomingReplicationHandler
  • [Revisions] Added support for resuming revision operations from a specified etag
  • [Setup] Fixed documentation links in readme files
  • [Setup] Improved license key validation, error handling, and Skip license support in Setup Wizard
  • [Traffic Watch] Added filtering by request/response size in Traffic Watch view
  • [Traffic Watch] Added WithTag query customization and enhanced URL handling in Traffic Watch view
  • [Vector Search] Added filtered vector search support in Corax, enabling HNSW approximate and exact similarity searches constrained to a query filter predicate
  • [Vector Search] Added meaningful exception when performing vector search with a disabled embeddings generation task
  • [Vector Search] Added order by score() support for vector search queries in sharded databases
  • [Vector Search] Fixed disposal of nodesIdsToScan allocations in exact vector search
  • [Vector Search] Improved HNSW parallel graph build implementation
  • [Voron] Fixed incorrect variable usage in IO stats collection for journal and temp buffer paths
  • [Voron] Fixed memory corruption during database compaction caused by DynamicKeyIndexes being incorrectly copied
  • [.NET] Updated to .NET 10.0.6

Client

  • [AI Agents] Added DeleteAgent method to the AI operations Client API
  • [Client API] Added informative error message when DocumentStore URL does not point to a RavenDB server
  • [ETL] Added connection string validation for Azure Queue Storage ETL to prevent storing invalid configuration
  • [Session] Added disposal guard in SaveChanges and SaveChangesAsync to prevent execution after DocumentStore is disposed
  • [Session] Added OptimisticConcurrencyMode enum with server-side batch change tracking for read entities

Studio

  • [AI Agents] Added resizable AceEditor and improved AI agent message summary display
  • [AI Agents] Improved AI agent parameters UI with type display, validation, and enhanced styling
  • [AI Agents] Improved dirty-field tracking in AI agent editor to prevent false unsaved-changes warnings
  • [AI Assistant] Improvements to the AI Assistant
  • [Certificates] Fixed "About to expire" certificates shown when filtering by "Valid" status
  • [Compare Exchange] Fixed compare exchange documentation link to use hashed URL
  • [JSON Schema] Added "About this view" help text and tooltip fixes to Document Schema playground
  • [JSON Schema] Fixed validator editing and deletion logic in Document Schema view
  • [Documents] Fixed delete documents modal to auto-close after operation notification; fixed notification detail lookup under slow network conditions
  • [Edit Document] Fixed revision comparison in edit document view to use the latest revision
  • [Indexes] Improved bulk index operation confirmation dialogs and index page interactions
  • [Ongoing tasks] Added access level messaging and validation for ongoing task creation
  • [Replication] Fixed whitespace trimming for replication hub and sink task filter paths
  • [Revisions] Fixed AdoptOrphanedRevisions notification
  • [Setup] Enhancements and improvements
  • [Vector Search] Added ai.task() autocomplete support for embedding generation tasks in RQL query editor

Articles

7.2.1 (72005) - 2026/03/17

Server

  • [AI Agents] Added manual multi-get requests to Traffic Watch
  • [Backup/Restore] Disabled ongoing tasks during snapshot restore
  • [Certificates] Properly retrying Let's Encrypt requests
  • [Compression] Ensured ZstdStream outputs the end frame properly
  • [Corax] Added WriteCompound to the index entry builder
  • [Corax] Exposed QueryPlan for scanned facets and timings for indexed facets, while removing unnecessary allocations
  • [Corax] Fixed possible IndexOutOfRangeException during internal dictionary and storage updates
  • [Corax] Handled empty output from analyzer when indexing a field. This fixes alphanumerical sorting on non existing terms
  • [Corax] Optimized Corax queries with NotEquals (!=) operations by avoiding full entries iteration
  • [Corax] Prevented marking a part of the query as matched by a compound field when not used to avoid sub-optimal query plans
  • [Corax/Voron] Ensured NativeList is not accessed after the Dispose call
  • [Corax/Voron] PostingList will now try to merge two pages if one is empty and the other is at least 75% full
  • [Databases] Fixed a double deletion issue in DatabasesLandlord
  • [ETL] Switched all stop reasons log levels to Debug for ETL processes
  • [ETL] Threw an exception on an ETL rename since it never worked correctly
  • [GenAI] Cleared stale @gen-ai-hashes when a document produces no contexts
  • [GenAI] Fixed 'Enable conversation documents' option in query tools
  • [GenAI] Handled null parameters
  • [GenAI] Updated caching to include sample objects
  • [Indexes] Ignored errors on specific index compaction to allow entire compaction operation to continue
  • [Indexes] Improvements to progress and estimation calculations
  • [Indexes] Included JavaScript indexes in unmergables during index merging
  • [Licensing] Added ToggleTaskStateCommand to license limit check
  • [Logging] Logged ClusterObserver decisions to the server log when Information level is enabled
  • [Memory] Introduced a specialized, lightweight method for early Out-Of-Memory checks
  • [Notifications] Added endpoint for server notifications access and fixed query string parameters handling
  • [Patching] Added attachments delete method to script runner
  • [Patching] Added support for partial Web Crypto API (crypto.subtle) and TextDecoder in JavaScript patches
  • [Performance] Correctly updated vector acceleration configuration in AdvInstructionSet
  • [Performance] Performance improvements to query requests handling
  • [Querying] Fixed overflow issue when counting query results for collection queries returning more than 2B results
  • [Querying] Threw specific NotSupportedException for all Include types in streaming queries
  • [QueueSinks] Added missing check for usage by QueueSinks task when removing a queue connection string
  • [Replication] Fixed time-series replication after deletion conflicts
  • [Revisions] Ensured the HasRevisions flag is removed when all revisions for a document are deleted
  • [Setup] Fixed license activation logic during setup
  • [Sharding] Added support for streaming of map-reduce queries in sharded databases
  • [Subscriptions] Added support for Regex.IsMatch in a subscription
  • [Subscriptions] Improvements to handling of concurrent subscription wait logic under high document write rates
  • [.NET] Updated to .NET 10.0.3

Client

  • [AI Agents] Fixed Handle overload selection for async handlers by changing the existing Handle Task overload to accept Task<TResult> instead of Task<object>. This is a breaking change, but the previous API was effectively wrong (it caused Task<T> handlers to bind to the object overload and treat the Task itself as the response)
  • [AI Agents] Stored action responses by toolId (dictionary) and threw on duplicates to enforce one response per tool invocation (prevents accidental AddActionResponse inside Handle / double replies)

Studio

  • [Backup/Restore] Added AWS session token to restore and backup now
  • [ETL] Disabled ETL renames in Studio UI
  • [Export] Added node tag to export db file name
  • [Icons] Normalized icon sizes and used dynamic import for svgtofont
  • [Ongoing Tasks] Enhanced task filtering, access control, and disable reason handling based on database admin permissions
  • [Ongoing Tasks] Fixed NRE when switching database on Ongoing Tasks view
  • [Setup] Fixes and enhancements to Setup Wizard
  • [Styling] Styling adjustments for Document Schema & Remote Attachments

Articles

7.2.0 (72003) - 2026/02/02

Features

  • [AI] AI Assistant. Docs
  • [Attachments] Remote attachments. Docs | Guide
  • [JSON] Schema validation. Docs | Guide

Server

  • This version contains same set of changes as RavenDB 7.1.6
  • [.NET] Updated to .NET 10.0.2

Articles

In this article