Hi all,
I realize I'm a little late to the party here.
TL;DR:
- Check if DHCP Auto Reservation is enabled in your router.
- If so, disable it.
- Then, on your GrapheneOS device, change the network setting under Internet -> [your network name] -> Privacy to "Use per-network randomized MAC"
I too was having this problem, specifically not being able to connect to my home network and receiving the "failed to obtain IP Address" message. In addition, my father's roku was also having trouble connecting.
Since other devices on my home network were still connected but the Roku was having a similar problem, I too thought it was a DHCP issue.
I rebooted my router ... no change. Saw my DHCP lease time was 4 hours and there were 200 IP's available by default so I too didn't think I'd be hitting that upper limit.
However, there was a separate section in my router's GUI for DHCP reservation and a toggle for DHCP Auto Reservation which was toggled on (which apparently associates the same IP to a device's MAC address on first connection). Under it was a huge list of MAC addresses and associated IPs.
Since I have multiple access points in my house and manually change between them and my phone was set to "use randomized MAC on each connection" I guess I filled this table of reservations as I moved throughout the house.
So after toggling DHCP Auto Reservation off and setting my phone to "Use per-network randomized MAC" for my home access points, I received an ip address right away and connected no problem.
Since disabling DHCP Auto Reservation cleared the table of saved IPs and MAC addreess entries, I reenabled it since I think majority of the excess entries were when my phone was set to use a randomized MAC on each connection.
Hope this helps.