Can we access your project?
Current Behavior
Any attempt to push via flutterflow ai run (non-dry-run) fails with HTTP 404 "Commit not found for this project" when the target project was created through the FlutterFlow web UI rather than via sdkCreateProject. The push has never succeeded — there is no prior SDK push commit on the server for this project, and sdkPushProject appears to require one as a prerequisite.
Expected Behavior
flutterflow ai run should successfully push changes to any project accessible via the API key, regardless of whether the project was originally created through the web UI or via sdkCreateProject. A project that exists on the server and is accessible (proven by sdkGetProject and sdkCommit both succeeding) should be pushable via sdkPushProject.
Steps to Reproduce
Reproducible with any UI-created project on a fresh SDK workspace:
- Create a new project in the FlutterFlow web UI (not via flutterflow ai create)
- Initialize a local workspace:
mkdir my-workspace && cd my-workspace
flutterflow ai init --project-id <YOUR_UI_PROJECT_ID>
- Write a minimal DSL script (dsl/hello.dart):
library;
import 'package:flutterflow_ai/flutterflow_ai.dart';
Future main(List args) async {
await flutterFlowAI(
(app) {
app.raw((project) {
print('Project loaded: ${project.name}');
});
},
projectId: '<YOUR_UI_PROJECT_ID>',
dryRun: false,
commitMessage: 'test push',
);
}
4. Run it:
flutterflow ai run dsl/hello.dart --commit-message "test push"
5. Expected: Commit is created on the server.
Actual:
[validated] 1 task passed; pushing...
Error: Commit not found for this project
Reproducible from Blank
Bug Report Code (Required)
IT4Cicnf5YZ2rtdY+Knxbu5olSc7NUM4RY0/lO5Hc0oYDZPMC+wIZ/f7XFRuTde0T1ZII2GjkXIzzP/emvOTUfVdAw6ubaJIz7hMUj3KIV6lMsmQCrjpSW5/DehNC26F0razqhNSC7duR1I+21OAA+iscz/XQ5zLDGovM8j+NZOK2SrDX1iXc2URm05KZDPz
Visual documentation
Proof that auth + project ID are valid — sdkCommit succeeds:
curl -X POST "https://api.flutterflow.io/v2/sdkCommit"
-H "Authorization: Bearer <API_KEY>"
-H "Content-Type: application/json"
-d '{"project_id": "FCZuTLhmKeDTK75r5KFv", "message": "test"}'
Response: {"success":true,"value":{"commit_id":"emUp85XyCbAT9btVWZss"}}
Then immediately after:
flutterflow ai run dsl/edit.dart --commit-message "test"
→ [validated] 1 task passed; pushing...
→ Error: Commit not found for this project
Environment
- FlutterFlow version: 0.0.36 (confirmed latest via flutterflow ai upgrade --check)
- Dart SDK : 3.x
- OS : macOs Tahoe 26.5.1
- Project origin : Created via FlutterFlow web UI
Additional Information
sdkPushProject appears to look up the current SDK push commit for the project server-side in order to chain the new commit on top of it.
For projects created via the web UI, this SDK commit chain was never initialized — no sdkCreateProject was ever called. The server finds no existing SDK push commit and returns 404.
Projects created via flutterflow ai create presumably work because sdkCreateProject sets up this initial commit record at creation time.
- Is there an endpoint (or a flag on sdkPushProject) to initialize the SDK commit tracking for an existing UI-created project — i.e. create the "first" SDK push commit from the current server-side project state?
- If not, is flutterflow ai create the only supported path to SDK push capability? If so, this should be documented — the current docs and error message give no indication that UI-created projects are incompatible with sdkPushProject.
Can we access your project?
Current Behavior
Any attempt to push via flutterflow ai run (non-dry-run) fails with HTTP 404 "Commit not found for this project" when the target project was created through the FlutterFlow web UI rather than via sdkCreateProject. The push has never succeeded — there is no prior SDK push commit on the server for this project, and sdkPushProject appears to require one as a prerequisite.
Expected Behavior
flutterflow ai run should successfully push changes to any project accessible via the API key, regardless of whether the project was originally created through the web UI or via sdkCreateProject. A project that exists on the server and is accessible (proven by sdkGetProject and sdkCommit both succeeding) should be pushable via sdkPushProject.
Steps to Reproduce
Reproducible with any UI-created project on a fresh SDK workspace:
mkdir my-workspace && cd my-workspace
flutterflow ai init --project-id <YOUR_UI_PROJECT_ID>
library;
import 'package:flutterflow_ai/flutterflow_ai.dart';
Future main(List args) async {
await flutterFlowAI(
(app) {
app.raw((project) {
print('Project loaded: ${project.name}');
});
},
projectId: '<YOUR_UI_PROJECT_ID>',
dryRun: false,
commitMessage: 'test push',
);
}
4. Run it:
flutterflow ai run dsl/hello.dart --commit-message "test push"
5. Expected: Commit is created on the server.
Actual:
[validated] 1 task passed; pushing...
Error: Commit not found for this project
Reproducible from Blank
Bug Report Code (Required)
IT4Cicnf5YZ2rtdY+Knxbu5olSc7NUM4RY0/lO5Hc0oYDZPMC+wIZ/f7XFRuTde0T1ZII2GjkXIzzP/emvOTUfVdAw6ubaJIz7hMUj3KIV6lMsmQCrjpSW5/DehNC26F0razqhNSC7duR1I+21OAA+iscz/XQ5zLDGovM8j+NZOK2SrDX1iXc2URm05KZDPz
Visual documentation
Proof that auth + project ID are valid — sdkCommit succeeds:
curl -X POST "https://api.flutterflow.io/v2/sdkCommit"
-H "Authorization: Bearer <API_KEY>"
-H "Content-Type: application/json"
-d '{"project_id": "FCZuTLhmKeDTK75r5KFv", "message": "test"}'
Response: {"success":true,"value":{"commit_id":"emUp85XyCbAT9btVWZss"}}
Then immediately after:
flutterflow ai run dsl/edit.dart --commit-message "test"
→ [validated] 1 task passed; pushing...
→ Error: Commit not found for this project
Environment
Additional Information
sdkPushProject appears to look up the current SDK push commit for the project server-side in order to chain the new commit on top of it.
For projects created via the web UI, this SDK commit chain was never initialized — no sdkCreateProject was ever called. The server finds no existing SDK push commit and returns 404.
Projects created via flutterflow ai create presumably work because sdkCreateProject sets up this initial commit record at creation time.