I've just tried again. But same problem again occur.

For example..

SQL> connect bank/bank@hclinf011
Connected.

SQL> create type test1_type as object (id number(10), description varchar2(50));
2 /

Type created.

SQL> create table test1_tab (
2 id NUMBER(10),
3 test1_col test1_type);

Table created.

SQL> grant select, insert, update, delete on test1_tab to bank_app;

Grant succeeded.

SQL> grant execute on test1_type to bank_app;

Grant succeeded.

SQL> connect bank_app/bank_app@hclinf011
Connected.

SQL> create synonym test1_tab for bank.test1_tab;

Synonym created.

SQL> create synonym test1_type for bank.test1_type;

Synonym created.

SQL> insert into test1_tab(id, test1_col) values (1, test1_type(1, 'ONE'));
insert into test1_tab(id, test1_col) values (1, test1_type(1, 'ONE'))
*
ERROR at line 1:
ORA-00904: invalid column name