When using an identity column with an explicit START WITH clause, it starts with the wrong value:
SQL> create database 'localhost:e:/db/fb4/identity_test.fdb' user sysdba password 'masterkey';
SQL> create table identity_test (id bigint generated always as identity (start with 1 increment by 10));
SQL> insert into identity_test default values;
SQL> select * from identity_test;
ID
=====================
11
expected result is 1.
SQL> create table identity_test2 (id bigint generated always as identity (start with 1));
SQL> insert into identity_test2 default values;
SQL> select * from identity_test2;
ID
=====================
2
expected result is 1
This is also the case for only INCREMENT BY:
SQL> create table identity_test3 (id bigint generated always as identity (increment by 10));
SQL> insert into identity_test3 default values;
SQL> select * from identity_test3;
ID
=====================
10
Expected result is 1
As I also pointed out in
CORE-6084, there are additional problems with negative increments: there the first generated value should be 2^63 -1 (for BIGINT), 2^31 -1 (for INTEGER) or 2^15 -1 (for SMALLINT) if the START WITH clause is absent.
This is related to
CORE-6084.