RE: 'There is nothing to post.' when posting Sales Order
With Assemble to Order, the Sales Line controls most of the process. For example, changing the Quantity updates the Assembly Order header Quantity. Changing the Qty. to Ship on the SO lines, updates the Qty. to Assemble in the AO Header, as well as the Qty. to Consume on the AO Lines.
Also, it is not possible to post consumption on the Assembly Order when it is Assemble-to-Order, the posting is triggered by the shipment of the Sales Order/Warehouse Shipment.
Now, depending on your Location's Warehousing setup will determine if the Warehouse Shipment/Pick is required. The Warehouse Shipment would be for the Finished Good, the Pick would be generated for the Assembly BOM components. Registering the Pick does not update the AO, only the Posting of the Warehouse Shipment would post the consumption, output and shipment of the Items.
Without more detail, I am assuming you have a customization/extension in your system and something happened during the Posting Process which allowed the process to get far enough to post the consumption, but didn't ship the product to the customer. You may have a stuck transaction.
The other potential is you don't have a Qty. to Ship value set, so there really is nothing to Post. OR you are trying to Post the Invoice, but the Qty. to Invoice value is not set. Either option would result in the Nothing to Post message.