I found an article that discusses this subject. It seems that the length of time before a check expires depends on the state and the bank:
Discussions about personal check expiration dates inevitably spiral into debates about the nuances of loan ethics. Although banking laws differ from state to state, most states consider that checks in excess of 6 months old are considered “stale dated.” Contrary to the conventional wisdom, stale dated checks can still be cashed successfully. However, the drawee’s bank has the right to refuse payment on the check or “bounce” it.
But you asked specifically about Bank of America. I did not find anything on their web site mentioning how long their checks remain valid. But I did find a blog post that answers your question.
The author of the blog post asked a Bank of America representative about a personal check his wife had written to someone a year earlier. The representative said the following, and said he was 100% sure about it:
“Check are good for 180 days (unless otherwise noted), so if the check came from your personal checkbook, it would be void by now.”
A personal check dated 2/14/2019 from my Bank of America checking account was cashed on 9/16/2020 (19 months after it was written). I called Bank of America about this and the customer service rep said Bank of America personal checks never expire.
A check my mother gave someone was supposedly lost and she paid a $30 fee to put a stop payment on that check. Well over two years later the check was found and the person cashed it....successfully. I called to complain, on my mother's behalf, and basically they said the following....(1) the $30 stop payment is only good for 12 months; she would have needed to continue to renew it forever (2) a check should be considered stale after 1-year BUT technically they NEVER expire and (3) Bank of America did nothing wrong and the best thing you can try and do is get the money back from the person who cashed the check.