TBH if you're working with raw transactions and custom wallets then you should be able to find out yourself. Dust is a possible reason, also using raw transactions you can create transactions that are valid but that are not accepted by the miners. If they don't include your transaction in a block then you're going nowhere...