solana documentaiton-developing-FAQ


When writing or interacting with Solana programs, there are common questions or challenges that often come up. Below are resources to help answer these questions.

If not addressed here, the Solana #developers Discord channel is a great resource.

CallDepth error(コールデプスエラー)

This error means that that cross-program invocation exceeded the allowed invocation call depth.
このエラーはプログラム間呼び出しが許可された"call depth"を超えたことを意味します。

See cross-program invocation Call Depth
"cross-program invocation Call Depth"を参照してください。

CallDepthExceeded error(コールデプスエクシードエラー)

This error means the BPF stack depth was exceeded.
このエラーは"BPF stack depth"の範囲を超えたことを意味します。

See call depth
"call depth"を参照してください。

Computational constraints(計算上の制約)

See computational constraints
" computational constraints"を参照してください。

Float Rust types(フロートRustタイプ)

See float support
"float support"を参照してください。

Heap size(ヒープサイズ)

See heap


This program error can happen for a lot of reasons. Usually, it's caused by passing an account to the program that the program is not expecting, either in the wrong position in the instruction or an account not compatible with the instruction being executed.

An implementation of a program might also cause this error when performing a cross-program instruction and forgetting to provide the account for the program that you are calling.


This program error can occur while trying to deserialize the instruction, check that the structure passed in matches exactly the instruction. There may be some padding between fields. If the program implements the Rust Pack trait then try packing and unpacking the instruction type T to determine the exact encoding the program expects:
このプログラムエラーは、命令をデシリアライズしようとしている間に発生することがあり、渡された構造体が命令と正確に一致していることを確認してください。フィールドあいだにパディングがあることがあります。プログラムが"Rust pack trait"を実装している場合は、プログラムが予期する正確なエンコードを決定するために命令"type T"のパッキングとアンパッキングを試みてください。


Some instructions require the account to be a signer; this error is returned if an account is expected to be signed but is not.

An implementation of a program might also cause this error when performing a cross-program invocation that requires a signed program address, but the passed signer seeds passed to invoke_signed don't match the signer seeds used to create the program address create_program_address.
また、プログラムの実装が、署名付きのプログラムアドレスを必要とするプログラム間呼び出しを実行する際にもこのエラーが発生することがあります。これは"invoke_signed"渡された"signer seeds"がプログラムアドレス" create_program_address"の作成に使用された"signer seeds"と一致しないことが原因です。

rand Rust dependency causes compilation failure("rand Rust"の依存関係がコンパイルエラーを引き起こします)

See Rust Project Dependencies
"Rust Project Dependencies"を参照してください。

Rust restrictions(Rustの制限)

See Rust restrictions
"Rust restrictions"を参照してください。

Stack size(スタックサイズ)

See stack