Hey I'm updating my truffle project from V2 to V3, and I am getting this error after migrating:

sudo truffle migrate --network development
Using network 'development'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: Migrations error: contract binary not set. Can't deploy new instance.
    at Function.new (/usr/lib/node_modules/truffle/node_modules/truffle-contract/contract.js:324:15)
    at /usr/lib/node_modules/truffle/node_modules/truffle-migrate/node_modules/truffle-deployer/src/actions/deploy.js:25:29
    at process._tickCallback (internal/process/next_tick.js:103:7)

Here is my truffle.js file:

module.exports = {
networks: {
development: {
  host: "localhost",
  port: 8545,
  network_id: "*"
staging: {
  host: "localhost",
  port: 8546,
  network_id: 1337
ropsten: {
  host: "",
  port: 8545,
  network_id: 3

} }

Deploy contracts file:

var Project = artifacts.require("./Project.sol");
var FundingHub = artifacts.require("./FundingHub.sol");

module.exports = function(deployer) {
  • I'm not so familiar with nuances in 3.x yet, but in 2.x that sort of thing looks familiar. Commonly happens when the deployer account is locked. "Network State Unknown" is a little perplexing until you get used to it. Commented Feb 21, 2017 at 0:22
  • Hmm soo that would be the testrpc account?
    – ethereal
    Commented Feb 21, 2017 at 17:09
  • If testrpc, try $ testrpc -u 0 -u 1 .... unlocks accounts 0 and 1 which are not unlocked by default if I'm not mistaken. Commented Feb 21, 2017 at 19:25
  • Ok I reverted back to Truffle 2 for now, but will try it once I'm finished current project.
    – ethereal
    Commented Feb 23, 2017 at 15:22

1 Answer 1


If you have one function that is an abstract function in your contract.

function addr(string _name) constant returns (address o_owner)

The whole contract is compiled as an abstract contract, so you will get this error message. It might be like me, that you never ment to write an abstract contract, but a but fast copy pasting of some code, and simsallabim, you have some abstract functions without thinking about it. So either add functions bodies to them or remove them.

Then your contract will compile.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.