releases.shpreview
Tinybird/Tinybird Changelog

Tinybird Changelog

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMay
Less
More
Releases11Avg3/moVersionsv4.0

PREWHERE clauses are supported in Forward¶

PREWHERE clauses in Pipe SQL are now supported in Forward across all clusters, matching the behavior already available in Classic.

Auto-cleanup for quarantine tables¶

Existing and newly created quarantine tables now have a 1-month TTL. Rows that land in quarantine will be cleaned up automatically after 30 days. This will allow customers to automatically clean up space that is not being used.

TypeScript SDK 0.0.72 and 0.0.73¶

  • Multi-argument AggregateFunction types are supported. argMax(String, DateTime), corr(Float64, Float64), sumMap(Array(String), Array(UInt64)), and parameterized variants like quantiles(0.5, 0.9) all round-trip correctly through the type mapper.
  • Wider type coverage: Int128, Int256, UInt128, UInt256 are now in the template transform allowlist.
  • Pipe generation preserves non-param template helpers like {{ column(...) }} and {{ split_to_array(...) }} instead of trying to inject param metadata into them.

Deprecation: BI Connector reaches end of life on June 30¶

The BI Connector will be removed on June 30, 2026. If you connect BI tools (Grafana, Power BI, Metabase, etc.) to Tinybird, migrate to the ClickHouse® Interface, which exposes the native ClickHouse protocol and works with any BI tool that speaks it. We're reaching out to affected Workspaces directly.

Bug fixes and improvements¶

  • [All]: URL import jobs now retry on transient infrastructure failures, with a deduplication token so retried inserts don't produce duplicate rows. User errors like schema mismatches still fail fast.
  • [All]: JSON datetime conversion during ingestion is ~3.5x faster. Noticeable on events with many timestamp fields.
  • [All]: Hidden Pipe params with a _ prefix (including template loop variables like _last, _col) no longer leak into the UI Parameters panel.
  • [All]: Transient Kafka consumer errors no longer surface as user-visible alerts within a short tolerance window.
  • [All]: Weekly cost recap email subject now says "weekly" instead of "daily".
  • [Forward]: CLI 4.5.7 fixes tb build logs to show the correct resource paths.
  • [Forward]: Workspace region menu cleanup, regions are sorted alphabetically grouped by provider, the current Workspace is highlighted correctly, and other regions show even when they have no Workspaces.
  • [Forward]: Fix ALTER operations timing out on some TTL modifications due to long mutations.

From the blog¶

No more QPS limits on Developer Plans: QPS limits and overages are gone from Developer Plans. Billing now tracks vCPU-seconds, every plan includes burst capacity (2x to 3x baseline), and ingestion is never throttled.

Hunting orphan objects: 45% off our ClickHouse storage bill (and a near data-loss incident): Engineering deep dive on tracking down petabytes of orphaned objects in object storage, cutting cloud storage costs ~45%, and the near data-loss incident that hardened the recovery procedures along the way.

Still on Tinybird Classic? Migrate to Forward.

Upcoming changes to Developer plans¶

The pricing model for plans on shared infrastructure is changing. The docs now include a detailed preview of what's coming:

  • QPS overages and Active minutes are being removed. Two new SKUs replace them: vCPU overages and On-demand CPUs.
  • QPS is no longer tied to billing. All plans share the same platform QPS limit (up to 600 QPS), kept as an infrastructure reliability safeguard only.
  • vCPU-based billing. Each plan includes a baseline vCPU allocation. Usage above that allocation counts as vCPU overage. A burst capacity (typically 2x to 3x) absorbs spikes before rate limiting kicks in with a 429.
  • No more 24-hour resize restriction. Developer plans can be resized or canceled at any time, with a minimum fee for same-day resizes.

Read the full details in the Developer plan docs.

Migrate from Classic to Forward with the new migrate-to-forward CLI command¶

From 4.5.6 upwards, Forward CLI supports the migrate-to-forward command which allows users to migrate Classic workspaces, without connectors, to Forward. This command makes migration self-serve and removes branches and releases, migrates your workspace, and produces a live deployment to fully complete a workspace's transition to Forward. The migration guide for these Classic workspaces without connectors can be found here. In addition, we have updated the overall migration docs to pave the way for migrations with connectors that will be coming soon.

Pipe stats retention extended to 30 days¶

The tinybird.pipe_stats_rt Service Data Source now retains data for 30 days, up from the previous 7-day window. You get a longer history for debugging, monitoring, and analyzing API usage patterns without needing to set up your own retention pipeline.

TypeScript SDK: Null Engine Data Sources and optional output fields¶

The TypeScript SDK now supports Null Engine Data Sources. These are Data Sources that don't store data, useful for schema definitions, testing, or as intermediaries in pipelines where you need the schema but not the storage.

Endpoint output schemas also support optional fields with .optional(). This is useful for templated Endpoints where a column may or may not be present depending on request parameters:

output: {
  event_name: t.string(),
  event_count: t.uint64(),
  // Only returned when include_debug=1
  debug_info: t.string().optional(),
}

When debug_info is marked .optional(), schema validation accepts responses both with and without the column, and the inferred TypeScript type makes debug_info an optional property.

Faster deployments¶

Forward deployments now avoid processing pipelines that haven't changed. Previously, modifying one pipeline could trigger unnecessary work on unrelated ones. Now only what you actually changed gets processed, so deploys are faster and use fewer database resources.

More accurate memory charts in observability¶

The memory usage charts in Workspace and Organization observability now include data from both Data Source operations and Pipe stats, giving a more complete picture of memory consumption. Previously, only Data Source ops log was counted.

Bug fixes and improvements¶

  • [All]: S3 sink errors from IAM "is not authorized" denials are now correctly surfaced as user-facing errors with a clear message, instead of being reported as internal failures.
  • [Forward]: Fixed drift detection in Shared Data Sources stemming from UNIX / Windows differences in line breaks.
  • [All]: Fixed NDJSON ingestion via URL, including a regression where Nullable(String) columns could fail conversion to LowCardinality(Nullable(String)) during Copy jobs.

From the blog¶

From 48 seconds to 130 milliseconds: vector search in Tinybird: A customer needed semantic search over 20 million embeddings. Three changes (HNSW indexes, pre-filtering, query structure) turned a 48-second timeout into sub-200ms responses.

Project Kijiji: building a GNN-based routing intelligence platform: A guest post about how a Graph Neural Network platform uses Tinybird to map African internet routing inefficiencies and predict where new IXP peering agreements would have the highest regional impact.

Still on Tinybird Classic? Migrate to Forward.

Choose your cluster when creating a Workspace¶

Organizations with multiple dedicated clusters can now select which cluster to create a new Workspace on. A dropdown shows available clusters with replica CPU and memory details, so you know exactly what resources you're targeting.

This works in both Forward and Classic.

Client IP and 403 visibility in pipe stats¶

Two observability improvements to tinybird.pipe_stats_rt:

Client IP tracking. Every API request now records the client IP address in tinybird.pipe_stats_rt.

Better 403 visibility. Requests rejected with a 403 (for example, from a revoked but cryptographically valid token) now appear in pipe_stats_rt with the associated workspace, token, and pipe info. Previously, only 403 from valid tokens with insufficient scopes were visible in tinybird.pipe_stats_rt.

TypeScript SDK 0.0.69¶

Three fixes in the TypeScript SDK:

  • Fixed column parameter metadata generation that could produce incorrect types.
  • Fixed Pipe parameter metadata generation for complex parameter definitions.
  • aggregateFunction's type argument is now optional, matching ClickHouse® behavior.

Improved reliability for Populate and Copy jobs with On-Demand Instance tiering¶

Populate and Copy Jobs run in on-demand instances will be more reliable when AWS or GCP regions lack availability of the instance sizes we provision for those operations. When the initial requested instance tier is unavailable, the platform will try to provision instances from other families with equivalent specs, and then fall back to lower-tier options.

This will make Populate and Copy jobs more reliable when run during periods of high demand.

Billing will reflect the instance type that was actually provisioned. If a lower-tier instance ends up being used, the cost is adjusted accordingly.

Bug fixes and improvements¶

  • [Forward]: Fixed a race condition that allowed two deployment jobs for the same deployment to run simultaneously.
  • [Forward]: Fixed branch creation when the most recent deployment to the main workspace used DEPLOYMENT_METHOD alter on any pipes.
  • [Forward]: Fixed tb init CI template generation for local development workflows.
  • [Classic]: Classic CLI 6.4.1 fixes % operator rejection in tb push for DEFAULT and MATERIALIZED expressions.
  • [All]: 405 errors on the /v0/variables/ API now link to the correct documentation page.

Still on Tinybird Classic? Migrate to Forward.

New observability charts for Developer plans¶

Developer plans now have their own observability charts: API CPU time, total CPU time, ingested rows, quarantine rows, memory, storage, requests, errors, and data transfer.

Tooltips are synchronized across all charts and share the same time range. When viewing ranges under one hour, granularity drops to 5-second windows for more precise CPU tracking.

tb CLI Docker image¶

The Tinybird Forward CLI is now available as a Docker image at tinybirdco/tb-cli-docker. Use it when your CI runner requires everything to run inside a container.

A docker-compose.yml file is included to boot the CLI alongside Tinybird Local for testing.

See the CI/CD docs for details.

Forward CLI updates¶

CLI 4.5.2: tb build on branches now runs as an asynchronous job, avoiding timeouts on long-running executions.

Deployment improvements¶

Materialized Views with shared targets: Deployments that involve multiple Materialized Views writing to the same target Data Source now correctly preserve all MV records during promotion. Previously, a cross-deployment dedup step could drop fan-out siblings in mixed-deployment scenarios.

Table existence checks on all replicas: Before running EXCHANGE TABLES during deployments, Tinybird now verifies the table exists on all replicas. This prevents deployment failures caused by replication lag.

Performance improvements¶

  • max_threads default removed in Gatherer: The max_threads ClickHouse® setting no longer caps thread usage, letting queries use all available cores in the Gatherer.
  • vCPU metering uses 30-second windows: vCPU usage measurement now uses 30-second windows instead of 1-minute windows, providing more accurate burst tracking.

Bug fixes and improvements¶

  • [Forward]: Fixed NDJSON URL downloads resuming correctly on timeout using HTTP Range headers, preventing large file imports from failing on transient S3 slowdowns.
  • [Forward]: Fixed data sink exports running with use_hive_partitioning=0 to avoid unintended path interpretation.
  • [Forward]: Fixed AS clause handling in forwarded job log sinks.
  • [All]: Fixed cluster usage not appearing in prorated expenses during plan resizes.
  • [All]: Fixed new Developer plan creation when users upgrade from a previous plan.
  • [All]: Updated tinybird-local ClickHouse® to v25.3.14.5-lts to fix DESCRIBE queries.
  • [All]: Organization members can now manage their own Workspace access and role from the organization members page.

Still on Tinybird Classic? Migrate to Forward.

Two new regions in Asia-Pacific¶

Tinybird is now available in AWS ap-east-1 (Hong Kong) and AWS ap-southeast-2 (Sydney).

If you're running workloads that serve users in APAC, these regions put your data and compute closer to them. Lower query latency at the edge, faster ingestion from local sources, and data residency in Hong Kong or Australia.

Full feature parity in both regions: Kafka and S3 connectors, Events API, real-time Materialized Views, and low-latency API Endpoints.

Select either region when you sign up for Tinybird or create a new Workspace.

Deployments improvements¶

Faster deployments with ATTACH PARTITION¶

Deployment backfills now use ATTACH PARTITION ALL FROM instead of SELECT * ... populate when possible. This skips the full data scan and copy, attaching existing partitions directly. For large Data Sources, this can make deployments significantly faster.

Destructive column changes require --allow-destructive-operations¶

Deployments that overwrite existing columns with default values (for example, changing a column type in a way that loses data) now require the --allow-destructive-operations flag. Without it, the deployment fails with a clear error message explaining which columns would be affected. This prevents accidental data loss during schema evolution.

Deployments unblocked when copy jobs are running¶

Previously, if a Copy Pipe job was running, all deployments were blocked, even when the deployment didn't touch any Data Sources involved in the copy. Now, deployments that don't modify Data Sources used by an active copy job proceed without waiting.

DevEx improvements¶

optimize_aggregation_in_order from all interfaces¶

The previous changelog introduced optimize_aggregation_in_order support for inline SETTINGS in SQL queries. You can now use it everywhere:

  • As a query parameter: /v0/pipes/<pipe>.json?optimize_aggregation_in_order=1
  • In Pipe SQL templates: %{{activate('optimize_aggregation_in_order')}}
  • In the Playground
  • Via the ClickHouse® HTTP interface

This setting can speed up aggregation queries where the Sorting Key matches the GROUP BY columns.

Forward CLI updates¶

tb copy pause and tb copy resume: commands to pause and resume copy jobs from the CLI.

CLI 4.4.2: tb build and tb dev now display git branch, Tinybird branch name, and dashboard URL before building. In local mode, a separate Workspace is created per git branch.

Python SDK init no longer requires --type¶

The tinybird init command in the Python SDK no longer requires the --type parameter. The project type is now inferred automatically.

TypeScript SDK updates¶

Several improvements landed in the TypeScript SDK (v0.0.65-0.0.66):

  • Custom fetch exposed on typed client. You can now pass a custom fetch implementation to the typed Tinybird client for use cases like custom auth headers or request logging.
  • Local workspace URL format updated. Local workspace dashboard URLs now use the format cloud.tinybird.co/{provider}/{region}/{ws}~local~{branch} instead of cloud.tinybird.co/local/{port}.

UI improvements¶

  • Unified resource actions. Data Source, Endpoint, and Copy Pipe resource pages now have consistent action buttons: "Open in Playground" and "Open in Time Series" on Data, Output, and Log tabs. A row limit selector and "Show as table/JSON/CSV" controls are also standardized.
  • DataFlow performance. The lineage graph now computes dependencies centrally instead of per-node, making large graphs render faster. Tab switching in resource pages no longer re-renders the lineage.
  • Overview charts. Tooltips are synced across overview charts, and each chart now includes "Open in Playground" and "Open in Time Series" buttons.
  • Connector logs. Connector log views now include "Open in Playground" and "Open in Time Series" buttons.

Pipe query validation on tb check¶

Running tb check now validates Pipe queries against ClickHouse®, catching SQL errors before deployment. Postgres and Iceberg query Pipes are excluded from this validation since they use different query engines.

API: 413 for oversized query results¶

The query API now returns HTTP 413 when a query result exceeds the maximum allowed size, instead of a generic error. This makes it easier to detect and handle large result sets programmatically.

SQL length limit updated to 128KB¶

The maximum SQL query length has been increased from 64KB to 128KB across all plans. See the limits docs for details.

Bug fixes and improvements¶

  • [Forward]: Fixed Pipe resource Query and Output tabs not using parameters properly.
  • [Forward]: Fixed playground reuse to match by SQL and nodes, not just by name.
  • [Forward]: Fixed deployment view URL persistence. The selected view in deployments is now stored in the URL, so it's preserved when refreshing.
  • [Forward]: Fixed CSV import of Tuple columns through ClickHouse®.
  • [Forward]: Fixed CSV quarantine for Nullable(DateTime) columns. Empty strings in nullable datetime columns were incorrectly quarantined instead of being treated as NULL.
  • [Forward]: Improved CSV header and separator detection during ClickHouse® import, preventing conflicts with ClickHouse®'s auto-detection.
  • [Forward]: Fixed NDJSON replace operations that were marked as done before the replace hook finished.
  • [Forward]: Fixed replace_tables failures in copy jobs when Materialized View SQL references external tables not in the Workspace.
  • [Forward]: Fixed deployment token scopes when a Data Source is replaced with a Pipe of the same name.
  • [Forward]: Fixed cyclic dependency detection during deployment phase calculation.
  • [Forward]: CLI messages now show uv run tinybird for Python SDK projects and npx tinybird for TypeScript SDK projects instead of tb.
  • [Forward]: Blocked creating and promoting releases in Forward Workspaces (deletion still allowed for cleanup).
  • [All]: Fixed duplicated regions in the region selector menu.
  • [All]: Fixed Workspace redirect after deletion and when the last stored Workspace no longer exists.
  • [All]: Fixed total storage not being displayed in the credits usage table.
  • [All]: Fixed CPU time chart in the overview page.
  • [All]: Fixed multipart form-data requests without a boundary parameter returning 500 instead of 400.
  • [All]: Documented mode=replace requirement for pre-signed S3 URLs and FORWARD_QUERY backfill warnings.

Deprecations¶

hfi_requests: ch_written_rows, ch_written_bytes, and ch_cpu_time deprecated¶

The ch_written_rows, ch_written_bytes, and ch_cpu_time columns in the tinybird.hfi_requests Service Data Source are now deprecated and will be removed in a future release.

If you're using these columns in queries or dashboards, remove them. All other hfi_requests columns remain available and unchanged.

From the blog¶

Finding and fixing bugs in ClickHouse®'s Alias table engine: We tested ClickHouse®'s experimental Alias table engine against real workloads, found two bugs in DDL dependency tracking and Materialized View triggering, and shipped a fix upstream.

Tinybird is now available in AWS ap-east-1 (Hong Kong): Lower latency for APAC workloads with data residency in Hong Kong.

Tinybird is now available in AWS ap-southeast-2 (Sydney): Lower latency for Australia and Oceania workloads with data residency in Sydney.

Still on Tinybird Classic? Migrate to Forward.

Branches are generally available with connector support, preview deployments, and agentic workflows. Plus CLI 3.5.3, and TypeScript SDK improvements.

Open-source skills for AI coding agents, plus breaking changes for CLI and connectors

Last Checked
31m ago
Latest
May 22, 2026
Tracking since Apr 13, 2022