---
title: "Release 3.0 | SurrealDB"
description: "Bug fixes: Fixed computed fields being eagerly evaluated when not selected in SELECT queries Fixed $parent resolving to NONE inside graph traversal WHERE…"
url: https://surrealdb.com/releases/3.0
---

Back to top

[Version 3.0.5](https://surrealdb.com/releases/3.0#release-3-0-5)

[Version 3.0.4](https://surrealdb.com/releases/3.0#release-3-0-4)

[Version 3.0.3](https://surrealdb.com/releases/3.0#release-3-0-3)

[Version 3.0.2](https://surrealdb.com/releases/3.0#release-3-0-2)

[Version 3.0.1](https://surrealdb.com/releases/3.0#release-3-0-1)

[Version 3.0.0](https://surrealdb.com/releases/3.0#release-3-0-0)

[Home](https://surrealdb.com/)

[Releases](https://surrealdb.com/releases)

3.0

# Release 3.0

6 patch releases · Latest 3.0.5 on Mar 27, 2026

[Newer release line available: 3.1 →](https://surrealdb.com/releases/3.1)

Bug fixes: Fixed computed fields being eagerly evaluated when not selected in SELECT queries Fixed $parent resolving to NONE inside graph traversal WHERE…

## 3.0.5

Released on Mar 27, 2026

Bug fixes:

- [Fixed computed fields being eagerly evaluated when not selected in `SELECT` queries](https://github.com/surrealdb/surrealdb/pull/7142)
- [Fixed `$parent` resolving to `NONE` inside graph traversal `WHERE` clauses](https://github.com/surrealdb/surrealdb/pull/7149)
- [Fixed `LIMIT` pushdown, plan-time parameter resolution, and computed field dependency analysis](https://github.com/surrealdb/surrealdb/pull/7076)
- [Fixed `count()` returning `1` for sets instead of counting items and added missing set function paths](https://github.com/surrealdb/surrealdb/pull/7115)

Features & improvements:

- [Added support for transaction conflict error reporting](https://github.com/surrealdb/surrealdb/pull/7179)
- [Increased v2 upgrade check frequency and added `--upgrade` flag for manual checks](https://github.com/surrealdb/surrealdb/pull/7101)

Upgrade or install

## Get SurrealDB v3.0.5

Pick how you want to install or upgrade. SurrealDB Studio can update connected instances in place, or choose a platform below to copy a CLI command for v3.0.5.

SurrealDB Cloud

macOS

Linux

Windows

Docker

Already installed

You can upgrade your SurrealDB Cloud instance to v3.0.5 effortlessly through SurrealDB Studio.

1. Open the [SurrealDB Studio](https://studio.surrealdb.com/current/instances)
2. Select your organisation and instance
3. On the dashboard, click on the "Upgrade" button
4. Your instance will be updated and restarted automatically

[Full install guide](https://surrealdb.com/surrealdb/install)

## 3.0.4

Released on Mar 13, 2026

Bug fixes:

- [Fixed HNSW index compaction write conflicts](https://github.com/surrealdb/surrealdb/pull/7077)

Features & improvements:

- [Improved consistency for set and array operations](https://github.com/surrealdb/surrealdb/pull/7079)
- [Reduced import overhead and added benchmarks](https://github.com/surrealdb/surrealdb/pull/7069)
- [Added query planner and executor improvements](https://github.com/surrealdb/surrealdb/pull/7081)
- [Added GraphQL subscriptions](https://github.com/surrealdb/surrealdb/pull/7027)
- [Updated IndxDB to v0.12.0](https://github.com/surrealdb/surrealdb/pull/7075)

Newer patch available

## Upgrade to 3.0.5

You are viewing the 3.0.4 changelog. A newer patch in this release line is available - we recommend running 3.0.5 for the latest fixes and improvements.

[View 3.0.5 release notes](https://surrealdb.com/releases/3.0#release-3-0-5)

## 3.0.3

Released on Mar 10, 2026

Bug fixes:

- [Fixed invalid time formatting strings causing a panic](https://github.com/surrealdb/surrealdb/pull/7043)
- [Fixed `+=`/`-=` silent no-ops with incompatible types](https://github.com/surrealdb/surrealdb/pull/7048)
- [Fixed `START` clause performance regression with pushdown KV skipping](https://github.com/surrealdb/surrealdb/pull/7047)
- [Fixed `SurrealValue::from_value` for all `serde_json::Value` variants](https://github.com/surrealdb/surrealdb/pull/7021)
- [Fixed BM25 `search::score()` returning 0 after index compaction](https://github.com/surrealdb/surrealdb/pull/7057)
- [Propagated actual query errors instead of misleading `Connection uninitialised`](https://github.com/surrealdb/surrealdb/pull/7044)
- [Fixed race condition in distributed task lease acquisition](https://github.com/surrealdb/surrealdb/pull/6501)
- [Fixed `UPSERT SET` with `IF` expressions always evaluating to the `ELSE` branch on existing records](https://github.com/surrealdb/surrealdb/pull/7056)
- [Fixed `LIMIT` producing fewer rows when `WHERE` is only partially resolved by the index](https://github.com/surrealdb/surrealdb/pull/7063)
- [Fixed subqueries not respecting nested fields with `AS key.key`](https://github.com/surrealdb/surrealdb/pull/7053)
- [Fixed index compaction `KeyAlreadyExists` and `TransactionConflict` errors](https://github.com/surrealdb/surrealdb/pull/7065)

Features & improvements:

- [Improved idempotency for transaction operations](https://github.com/surrealdb/surrealdb/pull/7008)
- [Updated SurrealKV to 0.21.0](https://github.com/surrealdb/surrealdb/pull/7042)
- [Added missing exports for `API`, `BUCKET`, `MODULE`, and `CONFIG` definitions](https://github.com/surrealdb/surrealdb/pull/7059)
- [Added `NaiveDate` implementation for `SurrealValue` in the SDK](https://github.com/surrealdb/surrealdb/pull/7040)
- [Fixed `ORDER BY` performance regressions with compound indexes](https://github.com/surrealdb/surrealdb/pull/7018)
- [Added root level field comments to GraphQL schema generation](https://github.com/surrealdb/surrealdb/pull/7032)
- [Implemented `v2` subcommand to run the legacy binary](https://github.com/surrealdb/surrealdb/pull/7058)
- [Added retry logic for initial datastore transactions on concurrent startup](https://github.com/surrealdb/surrealdb/pull/7055)

Newer patch available

## Upgrade to 3.0.5

You are viewing the 3.0.3 changelog. A newer patch in this release line is available - we recommend running 3.0.5 for the latest fixes and improvements.

[View 3.0.5 release notes](https://surrealdb.com/releases/3.0#release-3-0-5)

## 3.0.2

Released on Mar 3, 2026

Bug fixes:

- [Returned `None` for records that don't exist instead of a confusing error](https://github.com/surrealdb/surrealdb/pull/6978)
- [Fixed write-write conflicts on IP keys during IndexAppending](https://github.com/surrealdb/surrealdb/pull/6982)
- [Fixed serialization error of `RecordIdKeyType::Object`](https://github.com/surrealdb/surrealdb/pull/6977)
- [Ensured transaction timeouts were respected for queries](https://github.com/surrealdb/surrealdb/pull/6975)
- [Applied new executor bug fixes and optimizations](https://github.com/surrealdb/surrealdb/pull/6995)
- [Fixed `DEFINE FUNCTION` parsing from disk](https://github.com/surrealdb/surrealdb/pull/6987)
- [Fixed permission checks for `DELETE` live events](https://github.com/surrealdb/surrealdb/pull/6992)
- [Fixed compound unique indexing](https://github.com/surrealdb/surrealdb/pull/7002)

Features & improvements:

- [Added functions to set parts of datetimes](https://github.com/surrealdb/surrealdb/pull/6981)
- [Updated timestamp code to use boxed traits](https://github.com/surrealdb/surrealdb/pull/6892)
- [Made deriving `SurrealValue` more convenient when using the SDK](https://github.com/surrealdb/surrealdb/pull/6970)
- [Added error chaining infrastructure](https://github.com/surrealdb/surrealdb/pull/6969)
- [Added `--tables-exclude` flag to the `surreal export` command](https://github.com/surrealdb/surrealdb/pull/6999)

Newer patch available

## Upgrade to 3.0.5

You are viewing the 3.0.2 changelog. A newer patch in this release line is available - we recommend running 3.0.5 for the latest fixes and improvements.

[View 3.0.5 release notes](https://surrealdb.com/releases/3.0#release-3-0-5)

## 3.0.1

Released on Feb 24, 2026

Bug fixes:

- [Fixed record IDs not being dereferenced when a field is computed on them](https://github.com/surrealdb/surrealdb/pull/6937)
- [Prevented creating indexes on computed fields](https://github.com/surrealdb/surrealdb/pull/6936)
- [Patch fixes for version errors and `/sql` endpoint](https://github.com/surrealdb/surrealdb/pull/6930)
- [Allow durations to be multiplied and divided by numbers, and incremented and decremented like numbers](https://github.com/surrealdb/surrealdb/pull/6933)
- [Fixed permission check condition for root users](https://github.com/surrealdb/surrealdb/pull/6967)
- [Improved environment variable values](https://github.com/surrealdb/surrealdb/pull/6860)
- [Parallelized index compaction across distinct indexes](https://github.com/surrealdb/surrealdb/pull/6940)
- [Fixed GraphQL literals for string enums](https://github.com/surrealdb/surrealdb/pull/6943)
- [Improved WASM compatibility](https://github.com/surrealdb/surrealdb/pull/6947)
- [Fixed error serialization](https://github.com/surrealdb/surrealdb/pull/6951)
- [Fixed new planner and deduplication logic](https://github.com/surrealdb/surrealdb/pull/6957)

Newer patch available

## Upgrade to 3.0.5

You are viewing the 3.0.1 changelog. A newer patch in this release line is available - we recommend running 3.0.5 for the latest fixes and improvements.

[View 3.0.5 release notes](https://surrealdb.com/releases/3.0#release-3-0-5)

## 3.0.0

Released on Feb 17, 2026

After numerous alpha and beta releases over more than a year of development, we are releasing [SurrealDB v3.0.0!](https://surrealdb.com/blog/introducing-surrealdb-3-0--the-future-of-ai-agent-memory) 🎉. The changes for this release pertain to those over all the alpha and beta versions before 3.0.0, starting with `3.0.0-alpha.1` and the last `3.0.0-beta.4` and finally the changes between the final beta version and stable 3.0.0.

Items in the release notes marked as `🆕` are the newest changes from the final beta and 3.0.0.

To migrate from a 2.x version to 3.0, please see [the following page](https://surrealdb.com/docs/surrealdb/installation/upgrading/migrating-data-to-3x) which goes into further detail on the breaking changes and how to use migration diagnostics to obtain a list of actions for your particular schema.

Performance and optimisations:

- 🆕 [Internal streaming execution (new query planner)](https://github.com/surrealdb/surrealdb/pull/6873)
- 🆕 [Improve scanner for batched retrievals](https://github.com/surrealdb/surrealdb/pull/6864)
- 🆕 [Enable concurrent writes on HNSW vector index](https://github.com/surrealdb/surrealdb/pull/6878)
- 🆕 [Add support for skipping keys and values at storage engine layer](https://github.com/surrealdb/surrealdb/pull/6881)
- 🆕 [Implement multi-get fetches for graph edge scans](https://github.com/surrealdb/surrealdb/pull/6897)
- [Improved GROUP and ORDER BY execution correctness](https://github.com/surrealdb/surrealdb/pull/6778)
- [Improved edge lookups: Only fetch edge keys when values are unused](https://github.com/surrealdb/surrealdb/pull/6758)
- [Added criterion benchmarks for executor and functions](https://github.com/surrealdb/surrealdb/pull/6721)
- [Fetch ns, db, table, and fields once](https://github.com/surrealdb/surrealdb/pull/6677)
- [Reduced heap modifications in `MemoryOrderedLimit`](https://github.com/surrealdb/surrealdb/pull/5895)
- [Optimise index scans (descending) order and limit batch sizes](https://github.com/surrealdb/surrealdb/pull/6228)
- [Yield during CF/GC collection](https://github.com/surrealdb/surrealdb/pull/6168)
- [Optimise some array methods](https://github.com/surrealdb/surrealdb/pull/6047)
- [Invert expression value relation and move ast types out of value.](https://github.com/surrealdb/surrealdb/pull/6079)
- [Integrated CRUD benchmarking suite](https://github.com/surrealdb/surrealdb/pull/6722)
- [Enable query planner on DELETE, UPDATE and UPSERT statements](https://github.com/surrealdb/surrealdb/pull/5544)
- [Implemented reverse scan for table and range iterator](https://github.com/surrealdb/surrealdb/pull/5595)
- [Added memory limit threshold check to all statements](https://github.com/surrealdb/surrealdb/pull/5704)
- [Reduced storage and serialisation cost](https://github.com/surrealdb/surrealdb/pull/5806)
- [Optimised index iterators: stop scanning after LIMIT](https://github.com/surrealdb/surrealdb/pull/5858)
- [Added support for multiple writers in Full-Text search implementation](https://github.com/surrealdb/surrealdb/pull/5571)
- [Added support for range scans on compound indexes (prefix + range)](https://github.com/surrealdb/surrealdb/pull/6210)
- [Optimised START/LIMIT execution: correct semantics with WHERE/ORDER and early-stop iteration](https://github.com/surrealdb/surrealdb/pull/6354)
- [Added HTTP connection pooling to maximise throughput](https://github.com/surrealdb/surrealdb/pull/6340)
- [Removed Force Index mechanism and unify index building across all platforms](https://github.com/surrealdb/surrealdb/pull/6500)
- [Split AST & Logical Plan into separate components](https://github.com/surrealdb/surrealdb/pull/5977)
- [Modified allocation tracking behaviour and implementation](https://github.com/surrealdb/surrealdb/pull/6636)

Features, additions and syntax improvements:

- [Unified lookups for graph & references](https://github.com/surrealdb/surrealdb/pull/6273)
- 🆕 [Improve GraphQL integration and implementation](https://github.com/surrealdb/surrealdb/pull/6876)
- 🆕 [New datastore scheme with parameters](https://github.com/surrealdb/surrealdb/pull/6882)
- [Implemented permissions support for `DEFINE API`](https://github.com/surrealdb/surrealdb/pull/6815)
- [Hash-based vector deduplication for HNSW indexes](https://github.com/surrealdb/surrealdb/pull/6779)
- [Overhauled `DEFINE API` middleware logic](https://github.com/surrealdb/surrealdb/pull/6742)
- [Introduced Regex size limit configuration](https://github.com/surrealdb/surrealdb/pull/5638)
- [Added Filesystem support](https://github.com/surrealdb/surrealdb/pull/5701)
- [Added cbor encoding and decoding functions](https://github.com/surrealdb/surrealdb/pull/5763)
- [Added support for distributed sequences](https://github.com/surrealdb/surrealdb/pull/5583)
- [Added SQL base64 encoding/decoding with & without padding](https://github.com/surrealdb/surrealdb/pull/5748)
- [Added support for `INFO FOR` as a subquery](https://github.com/surrealdb/surrealdb/pull/5817)
- [Added support for filtering down graph selections with a range selection](https://github.com/surrealdb/surrealdb/pull/5831)
- [Exposed `QueryType` for `live` and `kill` responses](https://github.com/surrealdb/surrealdb/pull/5870)
- [Added RPC live statement options](https://github.com/surrealdb/surrealdb/pull/5878)
- [Added LQ `Killed` notification](https://github.com/surrealdb/surrealdb/pull/5876)
- [Allowed passing `fields` to RPC `live`](https://github.com/surrealdb/surrealdb/pull/5882)
- [Added support for partial array types in schemafull tables](https://github.com/surrealdb/surrealdb/pull/5865)
- [Introduced `ALTER FIELD`, update `ALTER TABLE`](https://github.com/surrealdb/surrealdb/pull/5863)
- [Enhanced Full-Text Search with OR Boolean Operation](https://github.com/surrealdb/surrealdb/pull/6179)
- [Added support for converting to/from protobufs and flatbuffers](https://github.com/surrealdb/surrealdb/pull/6177)
- [Introduced COUNT indexes for constant-time count() queries](https://github.com/surrealdb/surrealdb/pull/6343)
- [Introduced composable HTTP router factory for embedders](https://github.com/surrealdb/surrealdb/pull/6438)
- [Added Support of standard deviation and variance in foreign tables](https://github.com/surrealdb/surrealdb/pull/6450)
- [Use `surrealdb_types::*` in SDK and as core's public interface.](https://github.com/surrealdb/surrealdb/pull/6402)
- [Extended mock syntax to support full range](https://github.com/surrealdb/surrealdb/pull/6483)
- [Added support for variables in closures and live queries](https://github.com/surrealdb/surrealdb/pull/6455)
- [Allow access to `$input` parameter in EVENTS](https://github.com/surrealdb/surrealdb/pull/6468)
- [Added support for multi-session support in RPC protocol](https://github.com/surrealdb/surrealdb/pull/6496)
- [Added refresh token support to the RPC protocol and SDK](https://github.com/surrealdb/surrealdb/pull/6510)
- [New Surrealism plugins](https://github.com/surrealdb/surrealdb/pull/6522)
- [Added support for client-side transactions](https://github.com/surrealdb/surrealdb/pull/6533)
- [Memory-bounded LRU cache for HNSW vectors; remove deprecated MTREE index](https://github.com/surrealdb/surrealdb/pull/6553)
- [Moved strict mode to DB definition, added strict object type](https://github.com/surrealdb/surrealdb/pull/6539)
- [Added `ALTER INDEX` statement with `PREPARE REMOVE` for safe index decommissioning](https://github.com/surrealdb/surrealdb/pull/6603)
- [Added Default `NS` & `DB`](https://github.com/surrealdb/surrealdb/pull/6623)
- [Introduced a `None Type`](https://github.com/surrealdb/surrealdb/pull/6339)
- [Added `record::is::edge()` function](https://github.com/surrealdb/surrealdb/pull/6266)
- [Added `string::capitalize()` function](https://github.com/surrealdb/surrealdb/pull/6452)
- [Added `array::sequence()` function](https://github.com/surrealdb/surrealdb/pull/6485)
- [Added `Value::Set` / Set type](https://github.com/surrealdb/surrealdb/pull/6535)
- [Fixed CBOR and add `type::of` function.](https://github.com/surrealdb/surrealdb/pull/6523)
- [Added `Infinity` float value](https://github.com/surrealdb/surrealdb/pull/6431)
- [Added method syntax for `record::is_edge()`](https://github.com/surrealdb/surrealdb/pull/6306)
- [Added array functions for natural and/or lexical sorting](https://github.com/surrealdb/surrealdb/pull/5585)
- [Added set literal syntax](https://github.com/surrealdb/surrealdb/pull/6556)
- [Improved parameterisation of statements](https://github.com/surrealdb/surrealdb/pull/6347)
- [Added Finnish to snowball filter](https://github.com/surrealdb/surrealdb/pull/5601)

Bug fixes:

- 🆕 [Fix HNSW index memory explosion](https://github.com/surrealdb/surrealdb/pull/6871)
- 🆕 [Add support for versioned count queries](https://github.com/surrealdb/surrealdb/pull/6870)
- 🆕 [Reimplement ID generator to resolve concurrency freezes](https://github.com/surrealdb/surrealdb/pull/6884)
- 🆕 [Fix schemafull index validation for sub-field paths on structured field types](https://github.com/surrealdb/surrealdb/pull/6885)
- 🆕 [Fix count() AS optimisation ignoring field aliases with GROUP ALL](https://github.com/surrealdb/surrealdb/pull/6886)
- 🆕 [Fix WebSocket client memory leak in pending request cleanup](https://github.com/surrealdb/surrealdb/pull/6905)
- [Fixed async event retries to correctly roll back failed executions](https://github.com/surrealdb/surrealdb/pull/6863)
- [Fixed JWT decoding issues](https://github.com/surrealdb/surrealdb/pull/6862)
- [Fixed concurrent index builds dropping updates under heavy write load](https://github.com/surrealdb/surrealdb/pull/6856)
- [Fixed backwards compatibility issues in authentication limits](https://github.com/surrealdb/surrealdb/pull/6785)
- [Fixed HNSW layer popping logic](https://github.com/surrealdb/surrealdb/pull/6804)
- [Fixed edge cases in `ONLY`, `OMIT`, and `SELECT VALUE`](https://github.com/surrealdb/surrealdb/pull/6777)
- [Fixed edge cases in `FETCH` and `ORDER BY`](https://github.com/surrealdb/surrealdb/pull/6783)
- [Fixed ORDER BY behaviour for sets and Unicode characters](https://github.com/surrealdb/surrealdb/pull/6790)
- [Fixed INSERT RELATION preserving extra fields when using table variants](https://github.com/surrealdb/surrealdb/pull/6748)
- [Fixed parameterized clause validation](https://github.com/surrealdb/surrealdb/pull/6806)
- [Fixed Linux Docker builder issues with OpenSSL and ONNX Runtime linking](https://github.com/surrealdb/surrealdb/pull/6826)
- [Fixed datastore shutdown failures](https://github.com/surrealdb/surrealdb/pull/6788)
- [Fixed supported SDK version reporting](https://github.com/surrealdb/surrealdb/pull/6820)
- [Removed unsupported `VERSION` clause from `CREATE` and `INSERT`](https://github.com/surrealdb/surrealdb/pull/6821)
- [Ensured `api::invoke` omits execution context where appropriate](https://github.com/surrealdb/surrealdb/pull/6836)
- [Fixed race condition in Scanner causing duplicate range fetches](https://github.com/surrealdb/surrealdb/pull/6689)
- [Fixed panic in HNSW vector cache eviction under async contexts](https://github.com/surrealdb/surrealdb/pull/6690)
- [Fixed `LIVE SELECT` not returning UUID](https://github.com/surrealdb/surrealdb/pull/6694)
- [Fixed GraphQL parsing: `excluded` incorrectly treated as `included`](https://github.com/surrealdb/surrealdb/pull/6691)
- [Fixed bug in casting logic](https://github.com/surrealdb/surrealdb/pull/6752)
- [Fixed idiom continuity not broken by parentheses](https://github.com/surrealdb/surrealdb/pull/6753)
- [Fixed table serialisation bug](https://github.com/surrealdb/surrealdb/pull/6526)
- [Fixed `LIVE DIFF` response structure](https://github.com/surrealdb/surrealdb/pull/6551)
- [Fixed array slice iterating over own items](https://github.com/surrealdb/surrealdb/pull/5550)
- [Fixed arithmetic wrap panic in duration functions](https://github.com/surrealdb/surrealdb/pull/5569)
- [Fixed index out of bounds error](https://github.com/surrealdb/surrealdb/pull/5570)
- [Fixed overflow and panics in math functions](https://github.com/surrealdb/surrealdb/pull/5572)
- [Improved `ALL/ANYINSIDE` behaviour with strings and arrays of strings](https://github.com/surrealdb/surrealdb/pull/5584)
- [Improved over-fetch documents when LIMIT and START used together](https://github.com/surrealdb/surrealdb/pull/5590)
- [Fixed Tokeniser fail with successive punctuation characters](https://github.com/surrealdb/surrealdb/pull/5596)
- [Fixed the default endpoint for exports and imports](https://github.com/surrealdb/surrealdb/pull/5599)
- [Fixed Graph clauses `->(SELECT ...` issue in Rust SDK](https://github.com/surrealdb/surrealdb/pull/5606)
- [Fixed select with start and limit for arrays](https://github.com/surrealdb/surrealdb/pull/5623)
- [Fixed allowing null bytes in strings](https://github.com/surrealdb/surrealdb/pull/5652)
- [Fixed duplicate ID in GraphQL](https://github.com/surrealdb/surrealdb/pull/5680)
- [Fixed a bug with conversions to union types like `array<int> | bool`](https://github.com/surrealdb/surrealdb/pull/5685)
- [Fixed `rand::time` and other time-related issues](https://github.com/surrealdb/surrealdb/pull/5772)
- [Canonicalised allowed paths](https://github.com/surrealdb/surrealdb/pull/5804)
- [Normalised decimal values to fix indexing results](https://github.com/surrealdb/surrealdb/pull/5826)
- [Fixed concurrent indexing on quoted table names](https://github.com/surrealdb/surrealdb/pull/5833)
- [Fixed indexing on filtered count results](https://github.com/surrealdb/surrealdb/pull/5837)
- [Ensured arguments for object idiom methods are computed](https://github.com/surrealdb/surrealdb/pull/5848)
- [Fixed geometry parsing bug](https://github.com/surrealdb/surrealdb/pull/5866)
- [Reworked subqueries/covered expressions](https://github.com/surrealdb/surrealdb/pull/5781)
- [Allowed idiom functions to be restricted by capabilities](https://github.com/surrealdb/surrealdb/pull/5846)
- [Fixed `regex_non_string.surql` language-test for UUIDs](https://github.com/surrealdb/surrealdb/pull/5852)
- [Fixed memory usage and performance of Garbage Collection on old databases](https://github.com/surrealdb/surrealdb/pull/6017)
- [Fixed method calls on negative numbers](https://github.com/surrealdb/surrealdb/pull/6026)
- [Fixed JSON multipoint parsing](https://github.com/surrealdb/surrealdb/pull/6041)
- [Fixed START clause with WHERE; safer optimisation](https://github.com/surrealdb/surrealdb/pull/6201)
- [Fixed LIVE SELECT parsing with type::table()](https://github.com/surrealdb/surrealdb/pull/6230)
- [Limit fields in live query delete notifications](https://github.com/surrealdb/surrealdb/pull/6331)
- [Fixed invalid table view results with sum() returning 0](https://github.com/surrealdb/surrealdb/pull/6328)
- [Std index shouldn't fail if value already exists](https://github.com/surrealdb/surrealdb/pull/6155)
- [Fixed potential deadlock in distributed sequence allocation](https://github.com/surrealdb/surrealdb/pull/6337)
- [Replaced BTreeDocIds with SeqDocIds in M-Tree, remove ANALYSE, use Strand for RecordKey::String](https://github.com/surrealdb/surrealdb/pull/6336)
- [Enabled referencing fields in default value for defined fields.](https://github.com/surrealdb/surrealdb/pull/6341)
- [Removed dec when casting decimal to a string, allow string casting from None and Null](https://github.com/surrealdb/surrealdb/pull/6275)
- [Restricted supported types on id field](https://github.com/surrealdb/surrealdb/pull/6372)
- [Fixed incorrect ORDER BY LIMIT results on multi-column index scans](https://github.com/surrealdb/surrealdb/pull/6376)
- [Added notification for caller when a connection is dropped in Rust SDK](https://github.com/surrealdb/surrealdb/pull/6387)
- [Fixed ignored insert with unique index creating a record when index violated](https://github.com/surrealdb/surrealdb/pull/6344)
- [Fixed strings, identifiers and escape sequences](https://github.com/surrealdb/surrealdb/pull/6417)
- [Fixed Windows file path handling in bucket operations](https://github.com/surrealdb/surrealdb/pull/5925)
- [Fixed WebSocket limits configurable and enforce max message size](https://github.com/surrealdb/surrealdb/pull/6416)
- [Fixed possible invalid formatting of idioms](https://github.com/surrealdb/surrealdb/pull/6422)
- [Fixed aliases not being respected in views](https://github.com/surrealdb/surrealdb/pull/6442)
- [Fixed invalid formatting of statement expressions within general expressions](https://github.com/surrealdb/surrealdb/pull/6470)
- [Ensured subqueries and blocks have consistent outputs](https://github.com/surrealdb/surrealdb/pull/6456)
- [Added `CONTAINS/INSIDE` planning consistent with substring semantics](https://github.com/surrealdb/surrealdb/pull/6264)
- [Ensured destructuring with computed fields returns correct output](https://github.com/surrealdb/surrealdb/pull/6481)
- [Improve behaviour of group by and improve performance and robustness of views](https://github.com/surrealdb/surrealdb/pull/6518)
- [Fixed formatting bugs related to empty identifiers](https://github.com/surrealdb/surrealdb/pull/6497)
- [fixed the info rpc](https://github.com/surrealdb/surrealdb/pull/6506)
- [Ensured all statements return a value](https://github.com/surrealdb/surrealdb/pull/6548)
- [Fixed TableCheck output for `TYPE RELATION / NORMAL`](https://github.com/surrealdb/surrealdb/pull/6532)
- [Fixed SELECT with SPLIT so ORDER BY and START/LIMIT apply after splitting](https://github.com/surrealdb/surrealdb/pull/6561)
- [Added exact hint when path is deprecated](https://github.com/surrealdb/surrealdb/pull/6488)
- [Fixed Number hash to use consistent value hashing](https://github.com/surrealdb/surrealdb/pull/6572)
- [Fixed OOM crash in COUNT index on large datasets by batching key retrieval](https://github.com/surrealdb/surrealdb/pull/6601)
- [Fixed provided vars not being attached to context in surrealism 'sql_with_vars' function](https://github.com/surrealdb/surrealdb/pull/6596)
- [Fixed literal objects allow unknown keys](https://github.com/surrealdb/surrealdb/pull/6638)

Workflow, observability and developer experience improvements:

- 🆕 [Improve error communication and serialisation](https://github.com/surrealdb/surrealdb/pull/6893)
- [Added `/data` and `/logs` directories to the Docker container](https://github.com/surrealdb/surrealdb/pull/5575)
- [Ensured a checksum is generated for Windows binaries](https://github.com/surrealdb/surrealdb/pull/5807)
- [Added debugger setup instructions](https://github.com/surrealdb/surrealdb/pull/5873)
- [Improved metrics consistency](https://github.com/surrealdb/surrealdb/pull/6073)
- [Overwrite by default during data import](https://github.com/surrealdb/surrealdb/pull/5971)
- [Improve context cancellation checking with adaptive back-off strategy for better OOM protection](https://github.com/surrealdb/surrealdb/pull/6632)
- [Improved Surrealism Wasm](https://github.com/surrealdb/surrealdb/pull/6633)
- [Implemented slow logs](https://github.com/surrealdb/surrealdb/pull/6182)
- [Tokio Console integration](https://github.com/surrealdb/surrealdb/pull/6107)
- [Added support for log files, json log format, and advanced log span filtering](https://github.com/surrealdb/surrealdb/pull/6048)
- [Added configurable slow-query logging with parameter allow/deny filtering and normalised single-line output](https://github.com/surrealdb/surrealdb/pull/6410)
- [Included event errors in output](https://github.com/surrealdb/surrealdb/pull/6374)

Storage/index format and protocol:

- [Normalised numeric key encoding to unify ordering](https://github.com/surrealdb/surrealdb/pull/6253)
- [Introduced DecimalLexEncoder for Number](https://github.com/surrealdb/surrealdb/pull/6213)
- [Used IndexId for Index keys](https://github.com/surrealdb/surrealdb/pull/6314)
- [Stored keys using IDs for Namespace/Database](https://github.com/surrealdb/surrealdb/pull/6214)
- [Improved key-value storage engine layer](https://github.com/surrealdb/surrealdb/pull/6581)

Security/networking:

- [Reject IPs resolving to forbidden net targets](https://github.com/surrealdb/surrealdb/pull/6052)
- [DNS resolution on Context::check_allowed_net](https://github.com/surrealdb/surrealdb/pull/6101)
- [Configurable user agent for HTTP requests](https://github.com/surrealdb/surrealdb/pull/6169)

Newer patch available

## Upgrade to 3.0.5

You are viewing the 3.0.0 changelog. A newer patch in this release line is available - we recommend running 3.0.5 for the latest fixes and improvements.

[View 3.0.5 release notes](https://surrealdb.com/releases/3.0#release-3-0-5)

Our newsletter

Get tutorials, AI agent recipes, webinars, and early product updates in your inbox every two weeks

Newer release line

3.1

Updated Sep 1, 2026

[Newer release line](https://surrealdb.com/releases/3.1)

Older release line

2.6

Updated Mar 24, 2026

[Older release line](https://surrealdb.com/releases/2.6)

[All releases](https://surrealdb.com/releases)

GET STARTED

## Start building with SurrealDB

The unified data layer for AI. Simplify your stack. Reduce complexity. Build faster.

![Samsung](https://surrealdb.com/assets/static/4c58b81e7b3c9466.C_Hv0eml.svg)![NVIDIA](https://surrealdb.com/assets/static/nvidia.DaIEuMil.svg)![Apple](https://surrealdb.com/assets/static/f7dc2519e0d212bc.Cn8MYAK7.svg)![Verizon](https://surrealdb.com/assets/static/18b99996c689000f.B5PQ-nI9.svg)![Tencent](https://surrealdb.com/assets/static/401d8346058682c8.DqM87mst.svg)

SOC 2 Type 2

GDPR

Cyber Essentials Plus

ISO 27001

[Start free with SurrealDB](https://studio.surrealdb.com/current/instances/deploy) [Learn more](https://surrealdb.com/docs/what-is-surrealdb)

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://surrealdb.com"},{"@type":"ListItem","position":2,"name":"Releases","item":"https://surrealdb.com/releases"},{"@type":"ListItem","position":3,"name":"3.0","item":"https://surrealdb.com/releases/3.0"}]}
```

```json
{"@context":"https://schema.org","@type":"TechArticle","headline":"SurrealDB 3.0 release notes","description":"Bug fixes: Fixed computed fields being eagerly evaluated when not selected in SELECT queries Fixed $parent resolving to NONE inside graph traversal WHERE…","datePublished":"2026-03-27T00:00:00.000Z","dateModified":"2026-03-27T00:00:00.000Z","url":"https://surrealdb.com/releases/3.0","mainEntityOfPage":{"@type":"WebPage","@id":"https://surrealdb.com/releases/3.0"},"author":{"@type":"Organization","name":"SurrealDB","url":"https://surrealdb.com"},"publisher":{"@type":"Organization","name":"SurrealDB","logo":{"@type":"ImageObject","url":"https://surrealdb.com/assets/static/logo.BG7_TG2b.svg"}},"about":{"@type":"SoftwareApplication","name":"SurrealDB","applicationCategory":"DeveloperApplication","operatingSystem":"Linux, macOS, Windows","softwareVersion":"3.0"}}
```

```json
{"@context":"https://schema.org","@type":"Organization","name":"SurrealDB","url":"https://surrealdb.com","logo":"https://surrealdb.com/assets/static/logo.BG7_TG2b.svg","description":"SurrealDB is the unified data layer for AI. A multi-model database for documents, graphs, vectors, and time-series.","foundingDate":"2022","legalName":"SurrealDB Ltd","identifier":{"@type":"PropertyValue","propertyID":"GB-COH","value":"13615201"},"address":{"@type":"PostalAddress","streetAddress":"3rd Floor, 1 Ashley Road","addressLocality":"Altrincham","addressRegion":"Cheshire","postalCode":"WA14 2DT","addressCountry":"GB"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@surrealdb.com","url":"https://surrealdb.com/contact","availableLanguage":"English"},{"@type":"ContactPoint","contactType":"sales","email":"info@surrealdb.com","url":"https://surrealdb.com/contact","availableLanguage":"English"},{"@type":"ContactPoint","contactType":"security","email":"security@surrealdb.com","url":"https://surrealdb.com/.well-known/security.txt","availableLanguage":"English"},{"@type":"ContactPoint","contactType":"legal","email":"legal@surrealdb.com","url":"https://surrealdb.com/legal","availableLanguage":"English"}],"hasCertification":[{"@type":"Certification","name":"SOC 2 Type 2"},{"@type":"Certification","name":"GDPR"},{"@type":"Certification","name":"Cyber Essentials Plus"},{"@type":"Certification","name":"ISO 27001"}],"owns":[{"@type":"SoftwareApplication","name":"SurrealDB","url":"https://surrealdb.com/surrealdb"},{"@type":"SoftwareApplication","name":"Agent Memory","url":"https://surrealdb.com/agent-memory"}],"knowsAbout":["multi-model databases","document databases","graph databases","vector search","time-series databases","SurrealQL","Agent Memory","real-time databases","embedded databases","context layer","graph ontology","distributed database","knowledge graphs","distributed transaction protocols","highly-scalable databases"],"sameAs":["https://www.wikidata.org/wiki/Q124316308","https://github.com/surrealdb/surrealdb","https://twitter.com/surrealdb","https://www.youtube.com/@surrealdb","https://www.linkedin.com/company/surrealdb","https://discord.gg/surrealdb","https://www.reddit.com/r/surrealdb","https://www.instagram.com/surrealdb","https://medium.com/surrealdb","https://dev.to/surrealdb"]}
```
